簡體   English   中英

如何在數據庫的類型日期列中插入值?

[英]How to insert a value into a type date column of database?

如何將變量的值保存為數據庫的日期。

我的字符串如下

Java的

 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    try {
        SimpleDateFormat parseFormatter = new SimpleDateFormat("yyyy-MM-dd");
        //SimpleDateFormat dt = new SimpleDateFormat("yyyyy-mm-dd hh:mm:ss+hh:mm"); 
        Date date = parseFormatter.parse(mydate);

        String formattedDate = formatter.format(date);
        System.out.println("Date"+formattedDate);
      return formattedDate;  <<need to save its value to database lets say its value is 2013-03-19

我需要將其保存到類型為日期的表的列中。

數據庫

Name Type
Date date

我想我需要將字符串轉換為日期,但是如何?

ps.setDate(????)

如果mydate是yyyy-MM-dd格式的字符串,則可以執行以下操作

    PreparedStatement ps = conn.prepareStatement("insert into t1 (date) values (?)");
    ps.setDate(1, java.sql.Date.valueOf(mydate));
    ps.executeUpdate();

在MySql中使用STR_TO_DATE函數

編輯

例如

INSERT INTO table (dateCol1, col2 ..)
VALUES (STR_TO_DATE('May 1, 2013','%M %d,%Y'), col2value, ...)

MySQL可以理解日期。 假設您正在使用PreparedStatement ,則可以僅使用標准JDBC stmt.setDate(n,date) ,其中n是參數索引,而date是date類型的Java變量。

無需進行任何字符串轉換。

我想我需要將字符串轉換為日期,但是如何?

如果要將String轉換為Date ,請假設您的String2013-03-19

String yourString = "2013-03-19";
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(yourString);

在這里,您的String會轉換為Date對象,但是如果您需要將此特定日期設置為另一個date對象,則無法通過yourDateObj.setDate(date)這樣yourDateObj.setDate(date)因為Date類中沒有任何此類直接方法,以日期為參數。

要設置特定日期,您可以使用“日歷”

Calendar yourDate = new GregorianCalendar();
yourDate.setTime(date);

否則,您也可以使用Date(int year, int month, int date)但是現在不建議使用。

或者,如果您希望將String插入mysql Date列,則#function_str-to-date ,我同意Ed Heal的回答

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM