2

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

yyyymmdd 即 20131110

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

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

UPDATE wl_daily
SET
   newdate = UNIX_TIMESTAMP(date)

出于某种原因,它运行正常,但是它只向所有行输出 NULL。此外,由于某种原因,列名是空白的

有什么建议么?

4

2 回答 2

2

那是因为您的字段在字符串中,并且您试图向它添加不是字符串的时间戳。您需要使用像这样的有效日期时间字段timestamp才能工作。

建议:不要将日期和时间存储为字符串。以它们的原始格式存储它们。它使处理日期和时间变得更加容易。

于 2013-11-11T13:59:57.100 回答
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   

您应该只使用它来将您的列转换为特定日期的列。如果在生产中使用,每次需要一个数字时转换都会增加负载并减慢查询速度

于 2013-11-11T14:06:57.947 回答