首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在MySQL中插入moment JS时间

如何在MySQL中插入moment JS时间
EN

Stack Overflow用户
提问于 2014-09-26 04:42:39
回答 7查看 77.5K关注 0票数 48
代码语言:javascript
复制
//In Node/JS
myDate = moment(data.myTime.format('YYYY/MM/DD HH:MM:SS')).toISOString();
//myDate shows '2014-09-24T04:09:00.000Z'

Insert INTO (dateColumn..) Values(myDate)...

这是我在插入后得到的错误,注意Mysql中的列是"datetime“类型。

MySQL错误::{错误: ER_TRUNCATED_WRONG_VALUE:第1行的列'_dateColumn‘的日期时间值不正确:'2014-09- 24T04:09:00.000Z’代码:'ER_TRUNCATED_WRONG_VALUE',

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-09-26 04:51:11

出现此结果的原因是,您正在使用toISOString()方法,而该方法不是可插入到DATETIME列中的有效格式。正如docs指出的那样,正确的格式可能是YYYY-MM-DD HH:MM:SS(我认为这取决于MySQL配置,但这是默认格式)。

所以你应该像这样尝试使用moment的format()方法:

代码语言:javascript
复制
myDate =  moment(data.myTime.format('YYYY/MM/DD HH:mm:ss')).format("YYYY-MM-DD HH:mm:ss");

事实上,我不知道data.myTime是什么,但是如果它也是一个moment对象,你可以改变第一个format()方法并删除第二个方法。

票数 73
EN

Stack Overflow用户

发布于 2014-12-09 22:42:59

DontVoteMeDown answer是对的,除了分钟'mm'和秒'ss'需要小写,否则会返回错误的值:

代码语言:javascript
复制
myDate =  moment(new Date()).format("YYYY-MM-DD HH:mm:ss");

此外,在PHP中执行SQL查询之前,您应该检查javascript发送的值:

代码语言:javascript
复制
DateTime::createFromFormat('Y-m-d H:i:s', $myDate);

如果日期格式错误,将返回false

票数 33
EN

Stack Overflow用户

发布于 2018-09-06 17:58:55

下面是一个函数扩展,用于将其格式化为MySQL DateTime格式

代码语言:javascript
复制
moment.prototype.toMySqlDateTime = function () {
    return this.format('YYYY-MM-DD HH:mm:ss');
};

你将能够做到:moment().toMySqlDateTime();

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26047755

复制
相关文章

相似问题

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