-4

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

4

4 回答 4

2

使用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;
于 2013-04-02T17:17:12.073 回答
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

于 2013-04-02T17:17:18.190 回答
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 以来的秒数。

于 2013-04-02T17:16:28.593 回答
0

三种可能的解决方案:

  1. Unix 时间戳
  2. 代表日期的数字
  3. 自“纪元”以来经过的天数

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

希望这对您有所帮助。

于 2013-04-02T17:48:26.997 回答