MySQL将YYYY-MM-DD转换为unix时间戳

MySQL将YYYY-MM-DD转换为unix时间戳,mysql,datetime,unix-timestamp,Mysql,Datetime,Unix Timestamp,我想将YYYY-MM-DD列转换为unix时间戳。与这个问题类似: MySQL似乎没有将'2012-05-10'的值转换为正确的unixtime。以下是建议的失败函数: 选择UNIX\u TIMESTAMP(CAST(dateid为DATE))作为unixtime您使用的是哪个版本的MySQL?通过SQLFIDLE中的MySQL 5.5.27测试,这两个查询都有效 SELECT UNIX_TIMESTAMP(CAST('2012-05-10 00:00:00' AS DATETIME)) As

我想将YYYY-MM-DD列转换为unix时间戳。与这个问题类似:

MySQL似乎没有将'2012-05-10'的值转换为正确的unixtime。以下是建议的失败函数:
选择UNIX\u TIMESTAMP(CAST(dateid为DATE))作为unixtime
您使用的是哪个版本的
MySQL
?通过SQLFIDLE中的MySQL 5.5.27测试,这两个查询都有效

SELECT UNIX_TIMESTAMP(CAST('2012-05-10 00:00:00' AS DATETIME)) As UnixTime;
SELECT UNIX_TIMESTAMP(CAST('2012-05-10' AS DATE))  As UnixTime;

我不确定您到底遇到了什么问题,但以下方法很好:

CREATE TABLE ex (dt VARCHAR(20));
INSERT INTO ex SET dt = '2012-05-10';

SELECT
UNIX_TIMESTAMP('2012-05-10') ex1,
UNIX_TIMESTAMP(dt)  ex2,
UNIX_TIMESTAMP(CAST('2012-05-10' AS DATE)) ex3,
UNIX_TIMESTAMP(CAST(dt AS DATE)) ex4
FROM ex;
返回:

+------------+------------+------------+------------+
| ex1        | ex2        | ex3        | ex4        |
+------------+------------+------------+------------+
| 1336633200 | 1336633200 | 1336633200 | 1336633200 |
+------------+------------+------------+------------+
如您所见,如果字符串的格式为
YYYY-MM-DD
yyy-MM-DD HH:MM:SS
,则无需
CAST()
,因为MySQL会将此格式的字符串隐式转换为
DATE
s


请参见

预期结果是什么?你得到了什么?