我有一个表设置已填充数据。在“日期”栏中,我的日期格式如下:
yyyymmdd,即20131110
我创建了一个新字段,并使用文本格式将其命名为newdate。
然后,我打开SQL窗口并将以下内容放在
中UPDATE wl_daily
SET
newdate = UNIX_TIMESTAMP(date)
由于某种原因,它正在正确运行,但它只向所有行输出NULL。此外,由于某种原因,列名称为空白
有什么建议吗?
答案 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
您应该只使用它将列转换为特定于日期的列。每次需要转换数字时,如果在生产中使用
,则会增加负载并减慢查询速度