2014-04-28 45 views
1

只是为了了解MySQL的基础知识:当以下工作:MySQL的选择DateTime

SELECT DATE('2010-01-01'); 

以下不会:

SELECT DATETIME('2010-01-01 12:34:56'); 

它提出了以下几点:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('2010-01-01 12:34:56')' at line 1 

我不知道为什么会这样,因为DATEDATETIME的文档分别如下:

MySQL以'YYYY-MM-DD'格式检索并显示DATE值。

MySQL以'YYYY-MM-DD HH:MM:SS'格式检索并显示DATETIME值。

我知道我不需要将一个字符串“投”到DATETIME为了将它插入到表中。我只是想知道为什么这不一致。

回答

1

mysql不提供日期时间功能。

它所提供的TIMESTAMP()

SELECT TIMESTAMP('2010-01-01 12:34:56'); 

fiddle

+1

我明白了......我不知道'DATE'也是一个函数!我只是认为这是一种类型,而'DATE(...)'是一个强制转换。 – Bach

0

烨有mysql中没有DATETIME或相似名称的功能。

另外DATE('2003-12-31 01:02:03')将只返回日期部分。

要么使用TIMESTAMP('2003-12-31 12:10:05') OR

STR_TO_DATE('5/15/2012 8:06:26 AM', '%c/%e/%Y %r')如果你想字符串转换为日期时间。