2015-02-24 88 views
1

我的申請得到這個錯誤:數據截斷:不正確的日期時間值: '在行' 列 '日期' 1

Data truncation: Incorrect datetime value: '2-24-2015' for column 'POrder_Date' at row 1

我有MySQL的連接器的Java V-5.1.7

java.util.Date date = new java.util.Date(); 
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT); 
String date1, mon, datex, year, yearx, currentDate; 
int d, d1; 

下面的代碼是在我的課,構造器:

date1=df.format(date); 
    d=date1.indexOf('/'); 
    mon=date1.substring(0,d); 
    d1=date1.lastIndexOf('/'); 
    datex=date1.substring(d+1,d1); 
    yearx=date1.substring(d1+1); 
    year="20"+yearx; 
    currentDate=mon+"-"+datex+"-"+year; 
    System.out.println("current date "+currentDate); 
+2

歡迎來到Stack Overflow。請記住,我們是志願者,嘗試瞭解數百行代碼非常耗時。你可以編輯你的問題,只包括違規行嗎? – 2015-02-24 14:46:32

+0

MySQL中的規範文本表示法恰好是「2015-02-24」,而不是「2-24-2015」。 – 2015-02-24 14:47:42

+0

我試過,但仍然得到相同的錯誤 – 2015-02-24 14:56:13

回答

1

MySQL的默認日期格式 「YYYY-MM-DD」 .change日期格式然後存儲。可能無論它會工作。

java.util.Date date = new java.util.Date(); 
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT); 
String date1,mon,datex,year,yearx,currentDate; 
int d,d1; 
date1=df.format(date); 
d=date1.indexOf('/'); 
mon=date1.substring(0,d); 
d1=date1.lastIndexOf('/'); 
datex=date1.substring(d+1,d1); 
yearx=date1.substring(d1+1); 
year="20"+yearx; 
currentDate=mon+"-"+datex+"-"+year; 
System.out.println("current date "+currentDate); 
//change currentdate format MM-dd-yyyy into yyyy-MM-dd 
try { 
     SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy"); 
     Date convertedCurrentDate = sdf.parse(currentDate); 
     System.out.println(new SimpleDateFormat("yyyy-MM- dd").format(convertedCurrentDate)); 
    } catch (ParseException ex) { 
     Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex); 
    } 

查看打印日期格式喜歡(2015-05-25)。

+0

嘿,彼得它沒有奏效... btw感謝您的幫助 – 2015-02-24 18:26:34

0

你有兩個選擇:

要麼使用updateDate(),你目前使用rs.updateString(2,podate)。將Date對象傳遞給updateDate()

或者更改您的內部日期格式以符合ISO yyyy-mm-dd標準。

相關問題