在 INSERT INTO 语句中使用 FROM_UNIXTIME
Using FROM_UNIXTIME in an INSERT INTO statement
是否可以在 MySQL INSERT INTO
语句中使用 FROM_UNIXTIME
方法,如下所示?
INSERT INTO mycapacity (timeint, time, datetime) VALUES (FROM_UNIXTIME(20191120085412, '%D %M %Y %h:%i:%s %x'), '20 Nov 2019 16:54:12 GMT', '2019-11-20 08:54:12');
如果是这样,FROM_UNIXTIME
是否必须用引号引起来,因为列类型是 varchar?
MySQL 更喜欢所有内容都在 ISO 8601 format, or YYYY-MM-DD HH:MM:SS
中,而不是一些任意文本。使用本机 DATE、DATETIME 列存储数据。
FROM_UNIXTIME()
以正确的格式发出它,没有格式说明符应该没问题。值得注意的是,这个函数只接受 UNIX Epoch Time values,而不是像 20191112...
这样无效的任意日期字符串。比如现在时间是1574274411
如果您有一个整数编码的日期时间值,那么 FROM_UNIXTIME
将无济于事,您必须使用 STR_TO_DATE
解析它,如:
STR_TO_DATE('2019112', '%Y%m%d')
请注意,尚不清楚该数字中到底发生了什么,所以余数的格式需要用额外的说明符来解决,如果可以的话。
请记住,任何名称为 reserved keywords 的列都必须进行转义:
INSERT INTO mycapacity (timeint, `time`, `datetime`) VALUES (...)
在您的问题中您还不清楚您打算为每一列使用什么格式,因此指定架构将有助于缩小答案范围。
是否可以在 MySQL INSERT INTO
语句中使用 FROM_UNIXTIME
方法,如下所示?
INSERT INTO mycapacity (timeint, time, datetime) VALUES (FROM_UNIXTIME(20191120085412, '%D %M %Y %h:%i:%s %x'), '20 Nov 2019 16:54:12 GMT', '2019-11-20 08:54:12');
如果是这样,FROM_UNIXTIME
是否必须用引号引起来,因为列类型是 varchar?
MySQL 更喜欢所有内容都在 ISO 8601 format, or YYYY-MM-DD HH:MM:SS
中,而不是一些任意文本。使用本机 DATE、DATETIME 列存储数据。
FROM_UNIXTIME()
以正确的格式发出它,没有格式说明符应该没问题。值得注意的是,这个函数只接受 UNIX Epoch Time values,而不是像 20191112...
这样无效的任意日期字符串。比如现在时间是1574274411
如果您有一个整数编码的日期时间值,那么 FROM_UNIXTIME
将无济于事,您必须使用 STR_TO_DATE
解析它,如:
STR_TO_DATE('2019112', '%Y%m%d')
请注意,尚不清楚该数字中到底发生了什么,所以余数的格式需要用额外的说明符来解决,如果可以的话。
请记住,任何名称为 reserved keywords 的列都必须进行转义:
INSERT INTO mycapacity (timeint, `time`, `datetime`) VALUES (...)
在您的问题中您还不清楚您打算为每一列使用什么格式,因此指定架构将有助于缩小答案范围。