首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL数据库的正确DateTime格式是什么?

问MySQL数据库的正确DateTime格式是什么?
EN

Stack Overflow用户
提问于 2012-12-21 13:14:54
回答 4查看 12.2K关注 0票数 4

我使用以下DateTime字符串将此'12/21/2012 1:13:58 PM'数据插入到我的MySQL数据库中:

代码语言:javascript
复制
String Query = "INSERT INTO `restaurantdb`.`stocksdb` 
                  (`stock_ID`,`stock_dateUpdated`) 
                  VALUES ('@stockID' '@dateUpdated');

然后我收到了这个错误消息:

代码语言:javascript
复制
Incorrect datetime value: '12/21/2012 1:13:58 PM' for column 'stock_dateUpdated' at row 1

那么,在MySQL数据库中输入dateTime的正确格式/值是什么呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-21 13:19:06

Q:在MySQL语句中,DATETIME文本的正确格式/值是什么?

A:在MySQL中,DATETIME文本的标准格式是:

代码语言:javascript
复制
 'YYYY-MM-DD HH:MI:SS'

其中时间分量为24小时时钟(即,作为00和23之间的值提供的小时数字)。

MySQL提供了一个内置函数STR_TO_DATE,它可以将各种格式的字符串转换为DATE或DATETIME数据类型。

因此,作为替代方法,您还可以通过调用该函数来指定DATETIME的值,如下所示:

代码语言:javascript
复制
STR_TO_DATE('12/21/2012 1:13:58 PM','%m/%d/%Y %h:%i:%s %p')

因此,您可以让MySQL在INSERT语句中为您执行转换,如果您的VALUES列表如下所示:

代码语言:javascript
复制
... VALUES ('@stockID', STR_TO_DATE('@dateUpdated','%m/%d/%Y %h:%i:%s %p');

(我注意到您的VALUES列表中的两个文字之间缺少必需的逗号。)

MySQL确实允许在DATETIME文本的各个部分之间使用一些分隔符,因此它们并不是必须的。

MySQL 5.5 Reference Manual.

票数 8
EN

Stack Overflow用户

发布于 2012-12-21 13:18:54

我使用的是年-月-日,24小时时间。在PHP中,它是date('Y-m-d H:i:s'),我相信它与C#/.NET中的yyyy-MM-dd HH:mm:ss相对应(时间部分是可选的,破折号也是可选的)。

在文档中确认,Date and Time Literals

日期和时间值可以用多种格式表示,例如带引号的字符串或数字,具体取决于值的确切类型和其他因素。例如,在MySQL需要日期的上下文中,它将'2015-07-21‘、' 20150721’和20150721中的任何一个解释为日期。

票数 2
EN

Stack Overflow用户

发布于 2012-12-21 13:20:58

正如注释中提到的,值中缺少分隔符,。同样,最好先使用STR_TO_DATE将字符串转换为date对象,然后再插入as:

代码语言:javascript
复制
String Query = "INSERT INTO `restaurantdb`.`stocksdb` "+
                " (`stock_ID`,`stock_dateUpdated`) VALUES "+
               "('@stockID', STR_TO_DATE(@dateUpdated, '%m/%d/%Y %h:%i:%s %p'))";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13984638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档