我有一个包含三列的表,birth_day,birth_month和birth_year。这三个都是INT。我想要CONCAT()这些并将它们转换为EPOCH并将它们保存回新的列。
对于CONCAT()我使用的这些值
SELECT CONCAT(birth_month, "/", birth_day, "/", birth_year) AS new_birthday from birthdaytable
我对如何将其转换为EPOCH感到困惑。我会尝试将new_birthday投射到一天,然后对此进行一些计算,但有些年份超出MySQL的DATE / YEAR范围(有些是在1901年之前)
思想?
答案 0 :(得分:1)
您必须先更改CONCAT
,然后将其与UNIX_TIMESTAMP
SELECT UNIX_TIMESTAMP(CONCAT(birth_year, "-", IF(birth_month < 10, CONCAT('0', birth_month), birth_month), "-", IF(birth_day < 10, CONCAT('0', birth_day), birth_day))) AS newField from birthdaytable
答案 1 :(得分:0)
使用:
mysql> SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19');-> 1196440219
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp