MySQL从时间戳字段创建日期时间字段

MySQL从时间戳字段创建日期时间字段,mysql,phpmyadmin,Mysql,Phpmyadmin,我有一个简单的问题,我在早期测试中找到了解决方案,但现在无法复制,因为我需要真正去做 我们正在将我们的新闻系统从CuteNews移动到我们的自建MySQL系统。所有新闻都已导入数据库,但日期字段是Timestamp。我已经创建了一个新字段(created_date),并希望从日期字段中的时间戳填充该字段 正如我所说的,我在早期的试运行中确实这样做了,并且确信我通过PhpMyAdmin使用的查询符合updatenewssetcreated\u date=UNIX\u TIMESTAMP(date)

我有一个简单的问题,我在早期测试中找到了解决方案,但现在无法复制,因为我需要真正去做

我们正在将我们的新闻系统从CuteNews移动到我们的自建MySQL系统。所有新闻都已导入数据库,但日期字段是Timestamp。我已经创建了一个新字段(created_date),并希望从日期字段中的时间戳填充该字段

正如我所说的,我在早期的试运行中确实这样做了,并且确信我通过PhpMyAdmin使用的查询符合
updatenewssetcreated\u date=UNIX\u TIMESTAMP(date)
。这可能有点错误,因为我在工作,在手机上发帖,但这是沿着这些路线

未返回任何错误,但所有“创建日期”字段均填充为
0000-00-00 00:00
而不是日期字段中的时间戳中的日期

我知道这很简单,而且我知道当我看到它时,答案会很明显,但任何指点都将不胜感激

史蒂夫

编辑:通过阅读,我意识到我发布的内容可能有点误导。在我最初使用update查询的试运行中,根据相应的Timestamp字段在字段中输入正确的DateTime。只有这一次它显示0000-00-00:00


另外,谢谢你整理好格式。打电话有点尴尬

我就知道我就快到了!!这不是UNIX的时间戳,而是我所追求的UNIXTIME的时间戳

UPDATE news SET created_date = FROM_UNIXTIME(date)
谢谢你的帮助


Steve

创建日期的字段类型是什么?看起来MySQL认为日期列中的数据无效,因此正在将它们转换为
0000-00-00:00:00
。你确定它们是有效的吗?我快速查看了on date数据类型,并在评论中讨论了如何将
INTERVAL 0 DAY
添加到无效日期,以自动使其有效-可能需要一些尝试。我希望您在尝试使用
UPDATE
:-)创建的
更新之前,先尝试使用
SELECT
查询。\u date是一个DateTime字段。我直接尝试使用UPDATE,但在我自己的本地服务器上使用较小版本的表,因此如果破坏真实版本,则没有风险!以前没有见过INTERVAL 0 DAY技巧,但不要认为它是无效数据,因为它在几个月前的一次测试中可以很好地处理相同的数据。当您使用
SET TIMESTAMP column=UNIX\u TIMESTAMP(datecolumn)
时,您将得到一个数据截断错误。的确,时间戳列在内部存储为整数,但不能直接分配整数。否则MySQL无法确定“20130611”是日期还是整数。只需执行
SET timestampcolumn=datecolumn
即可。您可能会得到
0000-00-00 00:00:00
的原因可能是,时间戳数据类型的UTC范围为“1970-01-01 00:00:01”到“2038-01-09 03:14:07”?