如何在mysql中选择日期作为整数

时间:2013-04-02 17:14:50

标签: mysql

是否可以在mysql中选择日期类型作为整数?将其输出到.csv文件?

4 个答案:

答案 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)

答案 2 :(得分:0)

您可以使用:

select UNIX_TIMESTAMP(date)
from MyTable

UNIX_TIMESTAMP

  

如果没有参数调用,则返回一个Unix时间戳(从那以后的秒数)   ' 1970-01-01 00:00:00' UTC)作为无符号整数。如果是UNIX_TIMESTAMP()   使用日期参数调用,它返回参数的值   自从1970-01-01 00:00:00' UTC。

答案 3 :(得分:0)

三种可能的解决方案:

  1. Unix时间戳
  2. 代表日期的数字
  3. 自“epoch”以来已过去的天数
  4. Unix时间戳

    正如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()功能的适当用法。

    自“epoch”

    以来经过的天数

    如果您需要计算自特定日期过去的天数(比如2011年5月15日),您将需要datediff()函数:

    SELECT DATEDIFF('2013-03-31','2011-05-15')
    

    查看参考手册以了解datediff()功能的适当用法。

    希望这会对你有所帮助。