是否可以在mysql中选择日期类型作为整数?将其输出到.csv文件?
答案 0 :(得分:1)
使用UNIX_TIMESTAMP()将日期转换为整数。
mysql> SELECT UNIX_TIMESTAMP();
-> 1196440210
mysql> SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19');
-> 1196440219
要导出为CSV,请使用SELECT...INTO:
SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;
答案 1 :(得分:1)
是的,有可能。请参阅Unix_Timestamp函数:https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp
要导出为CSV文件,请参阅:http://dev.mysql.com/doc/refman/5.0/en/select-into.html
答案 2 :(得分:0)
您可以使用:
select UNIX_TIMESTAMP(date)
from MyTable
如果没有参数调用,则返回一个Unix时间戳(从那以后的秒数) ' 1970-01-01 00:00:00' UTC)作为无符号整数。如果是UNIX_TIMESTAMP() 使用日期参数调用,它返回参数的值 自从1970-01-01 00:00:00' UTC。
答案 3 :(得分:0)
三种可能的解决方案:
正如RedFilter发布的那样,unix_timestamp(date)
返回Unix时间戳的值,这是一个无符号整数,表示自1970年1月1日1970 00:00:00 UTC以来经过的秒数。
在某些情况下,您可能需要将日期表示为数字;例如:2013年3月31日20130331
。这只是一个格式问题:
select cast(date_format(date, `%Y%m%d') as int)
查看参考手册,了解cast()
和date_format()
功能的适当用法。
如果您需要计算自特定日期过去的天数(比如2011年5月15日),您将需要datediff()
函数:
SELECT DATEDIFF('2013-03-31','2011-05-15')
查看参考手册以了解datediff()
功能的适当用法。
希望这会对你有所帮助。