如何在mysql中将DATETIME转换为TIMESTAMP?

Rom*_*man 7 mysql datetime unix-timestamp

我的表中有 DATETIME 列,其2015-04-23 11:17:49属性尝试将其转换为 unix 时间戳,根据 mysql 文档,我只需将该字段放入 UNIX_TIMESTAMP() 函数,我会得到 -> 1223423442 - 时间戳,但它不起作用,我只有 0000-00-00 00:00:00 尝试了很多东西:

// doesn't work
UNIX_TIMESTAMP(CAST(`updated` AS CHAR(100))) AS updated_at,
// doesn't work
UNIX_TIMESTAMP(`updated`) AS updated_at,
//doesn't work
UNIX_TIMESTAMP(STR_TO_DATE(CAST(`created` AS CHAR(100)), \'%M %e %Y %h:%i%p\'))
                                AS created_at'
// doesn't work
UNIX_TIMESTAMP(STR_TO_DATE(`created`, '%M %e %Y %h:%i%p'))
                                AS created_at
Run Code Online (Sandbox Code Playgroud)

没有 `` 也不起作用,我错过了什么吗?

小智 2

我不明白为什么需要将 DATETIME 转换为 TIMESTAMP。

您可以使用 INT(11) 字段来存储使用函数 UNIX_TIMESTAMP( your_datetime_field) 从 DATETIME 转换而来的 UNIX TIMESTAMP。

注意,根据文档:http://dev.mysql.com/doc/refman/5.5/en/datetime.html

DATETIME 类型用于包含日期和时间部分的值。MySQL 以“YYYY-MM-DD HH:MM:SS”格式检索并显示 DATETIME 值。支持的范围是“1000-01-01 00:00:00”到“9999-12-31 23:59:59”。

TIMESTAMP 数据类型用于包含日期和时间部分的值。TIMESTAMP 的范围为“1970-01-01 00:00:01”UTC 到“2038-01-19 03:14:07”UTC。

  • 也许您需要时间戳而不是日期时间?我可以想到很多你想要进行转换的原因。 (3认同)