本问题已经有最佳答案,请猛点这里访问。
是否可以在mysql中选择日期类型为整数? 将其输出到.csv文件?
对的,这是可能的。
"整数"是什么意思? 一个纪元过去了几天? 代表日期的数字? 什么?
使用UNIX_TIMESTAMP()将日期转换为整数。
mysql> SELECT UNIX_TIMESTAMP();
-> 1196440210
mysql> SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19');
-> 1196440219
要导出为CSV,请使用SELECT ... INTO:
谢谢,解决了我的问题
对的,这是可能的。参见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
三种可能的解决方案:
Unix时间戳
代表日期的数字
自"时代"过去的天数
Unix时间戳
就像RedFilter发布的一样,unix_timestamp(date)返回Unix时间戳记的值,它是一个无符号整数,表示自1970年1月1日00:00:00 UTC以来经过的秒数。
代表日期的数字
在某些情况下,您可能需要将日期表示为数字。例如:20130331(2013年3月31日)。这只是格式问题:
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()功能的正确用法。
希望这对您有所帮助。
您可以使用:
UNIX_TIMESTAMP
If called with no argument, returns a Unix timestamp (seconds since
'1970-01-01 00:00:00' UTC) as an unsigned integer. If UNIX_TIMESTAMP()
is called with a date argument, it returns the value of the argument
as seconds since '1970-01-01 00:00:00' UTC.