UNIX_时间戳在MySQL中输出空值?

UNIX_时间戳在MySQL中输出空值?,mysql,sql,date,datetime,timestamp,Mysql,Sql,Date,Datetime,Timestamp,我有一个表格设置,其中填充了数据。在“日期”栏中,我有以下格式的日期: yyyymmdd,即2013110 我创建了一个新字段,并使用文本格式将其命名为newdate 然后,我打开SQL窗口并将以下内容放入 UPDATE wl_daily SET newdate = UNIX_TIMESTAMP(date) 由于某些原因,它正在正确运行,但是它只向所有行输出NULL。此外,由于某些原因,列名为空 有什么建议吗?这是因为您的字段是一个字符串,而您正试图将时间戳添加到它,而它不是一个字符串。

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

yyyymmdd,即2013110

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

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

UPDATE wl_daily
SET
   newdate = UNIX_TIMESTAMP(date)
由于某些原因,它正在正确运行,但是它只向所有行输出NULL。此外,由于某些原因,列名为空


有什么建议吗?

这是因为您的字段是一个字符串,而您正试图将时间戳添加到它,而它不是一个字符串。您需要使用一个类似的
时间戳
,这样才能工作


建议:不要将日期和时间存储为字符串。将它们储存在它们的容器中。它使处理日期和时间变得更容易。

尽管约翰·克朗德的答案是正确的,但它对你的处境没有帮助

 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   

您应仅使用此选项将列转换为特定于日期的列。如果在生产中使用,每次需要转换一个数字时都会增加负载并降低查询速度

,因此我将日期字段设置为“date”,但在newdate字段中似乎仍然为空。对这两个字段应该是什么有什么建议吗?我尝试了以下方法:更新wl_daily SET newdate=UNIX_TIMESTAMP(STR_TO_DATE(DATE),%Y%m%d'),但是再次返回null。什么是
DATE
应该是包含文本的列?因为date是保留字date是现有信息,即2013110和newdate将是date的时间戳版本,所以用反勾号引用它。我刚刚添加了backticks,但仍然存在相同的问题。您可以设置一个JSFIDLE或尝试上面的select语句吗?select语句返回138412800