我有這個數據表(mytable的):MySQL的:添加天的日期
CORTE_DATE ; FECHA_INICIO
2013-03-31 ; 2012-12-31 00:00:00.0
2013-06-30 ; 2013-03-31 00:00:00.0
2013-09-30 ; 2013-06-30 00:00:00.0
2013-12-31 ; 2013-09-30 00:00:00.0
我想加一(1)天FECHA_INICIO領域,我已經嘗試了幾種方法:
update mytable set FECHA_INICIO = ADDDATE(FECHA_INICIO, 1);
update mytable set FECHA_INICIO = DATE_ADD(FECHA_INICIO, INTERVAL 1 DAY);
update mytable set FECHA_INICIO = FECHA_INICIO + INTERVAL 1 DAY;
並且它們全部用NULL更新FECHA_INICIO。如果我選擇的行類似如下:
select adddate(FECHA_INICIO, interval 1 day) FECHA, FECHA_INICIO from mytable
我得到我使用的linux下的
什麼我做錯了MySQL的69年1月5日以下
FECHA FECHA_INICIO
(null) 2012-12-31 00:00:00.0
(null) 2013-03-31 00:00:00.0
(null) 2013-06-30 00:00:00.0
(null) 2013-09-30 00:00:00.0
?它可能是一個MySQL設置問題?
現在我找到了原因......使用MySQL控制檯,我做了一個選擇MYTABLE的,看看我得到了什麼:
+------------+--------------+
| FECHA | FECHA_INICIO |
+------------+--------------+
| 2013-03-31 | 2013-01-00 |
| 2013-06-30 | 2013-04-00 |
| 2013-09-30 | 2013-07-00 |
| 2013-12-31 | 2013-10-00 |
+------------+--------------+
所以在日它被存儲問題在列。我使用DbVisualizer做選擇,並且驅動程序返回了不同的日期。
在日期結束時多餘的'.0'告訴我它不是有效的日期格式,並且該列可能存儲爲字符串。在對其進行日期數學計算之前,在該列上使用'STR_TO_DATE'。 –
FECHA_INICIO列的數據類型是什麼? – Rahul
可能是FECHA_INICIO的數據類型是varchar或char。 –