日期插入到mysql表中

时间:2010-12-02 22:11:18

标签: mysql datetime date timestamp

我的sql插件是date(%d-%M-%y)但是对该字段没有影响,没有添加任何数据。也没有插入02-Dec-2010。我需要更改表格字段类型或默认值,以便插入日期为2010年12月2日格式?

Field: creationdate
Type: timestamp 
Default: CURRENT_TIMESTAMP (showing 0000-00-00 00:00:00)

2 个答案:

答案 0 :(得分:3)

您不预先格式化日期。您插入格式为YYYY-MM-DD HH:II:SS的时间戳,当您需要格式化日期(SELECT语句)时,使用DATE_FORMAT函数。

如果您已经拥有类似02-Dec-2010的时间戳,则可以使用STR_TO_DATE函数将其转换为实时时间戳。

mysql> SELECT DATE_FORMAT(current_date, '%d-%b-%Y');
+--------------------------------+
| DATE_FORMAT(NOW(), '%d-%b-%Y') |
+--------------------------------+
| 02-Dec-2010                    |
+--------------------------------+

mysql> SELECT STR_TO_DATE('02-Dec-2010', '%d-%b-%Y');
+----------------------------------------+
| STR_TO_DATE('02-Dec-2010', '%d-%b-%Y') |
+----------------------------------------+
| 2010-12-02                             |
+----------------------------------------+

答案 1 :(得分:0)

MySQL期望date / datetime数据类型包含日期和/或时间戳,日期和/或时间戳的日期为YYYY-MM-DD格式,其中 - 是任何有效的分隔符。 2010年12月2日不是这些类型的有效日期。