UNIX_TIMESTAMP在MySQL中输出NULL?

时间:2013-11-11 13:58:38

标签: mysql sql date datetime timestamp

我有一个表设置已填充数据。在“日期”栏中,我的日期格式如下:

  

yyyymmdd,即20131110

我创建了一个新字段,并使用文本格式将其命名为newdate。

然后,我打开SQL窗口并将以下内容放在

UPDATE wl_daily
SET
   newdate = UNIX_TIMESTAMP(date)

由于某种原因,它正在正确运行,但它只向所有行输出NULL。此外,由于某种原因,列名称为空白

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

那是因为您在字符串中的字段,并且您正在尝试为其添加时间戳,而不是字符串。您需要使用valid datetime field timestamp来实现此目的。

建议:不要将日期和时间存储为字符串。将它们存储在native format中。它使日期和时间更多更容易。

答案 1 :(得分:1)

虽然约翰克朗德的答案是正确的 - 但它并没有帮助你的生活

 UNIX_TIMESTAMP(STR_TO_DATE(`date`, '%Y%m%d'))

将进行转换,例如

SELECT UNIX_TIMESTAMP(STR_TO_DATE('20131111', '%Y%m%d')) 

返回

unix_timestamp(STR_TO_DATE('20131111', '%Y%m%d'))  
---------------------------------------------------
                                         1384128000   

您应该只使用它将列转换为特定于日期的列。每次需要转换数字时,如果在生产中使用

,则会增加负载并减慢查询速度