MYSQL - datetime到秒

时间:2010-03-13 15:19:07

标签: mysql datetime

我无法找到(谷歌搜索,阅读mysql参考手册)如何在MySQL中获得 DATETIME的值

我不是指从datetime中提取秒数,而是将其转换为秒。

7 个答案:

答案 0 :(得分:40)

如果通过“转换为秒”,则表示“转换为UNIX Timestamp (即自{{1}以来的秒数}),然后您可以使用UNIX_TIMESTAMP函数:

1970-01-01


而且,为了完整性,要从Unix时间戳转换为日期时间,您可以使用FROM_UNIXTIME函数。

答案 1 :(得分:32)

如果您希望获得两个DATETIME值之间的差异,请使用TIMESTAMPDIFF

  

<强> TIMESTAMPDIFF(单元,datetime_expr1,datetime_expr2)

     

返回datetime_expr2 – datetime_expr1,其中datetime_expr1datetime_expr2是日期或日期时间表达式。一个表达式可以是日期,另一个表达式可以是日期时间;在必要时,日期值被视为具有时间部分'00:00:00'的日期时间。结果的单位(整数)由单位参数给出。单位的合法值与TIMESTAMPADD()函数说明中列出的值相同。

mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');  
    -> 3  



mysql> SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01');  
    -> -1  


mysql> SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55');  
    -> 128885

unit也可以是HOUR,这是您在其中一条评论中提出的要求。

单位参数可以是以下任何一种:

  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

其他一些选项的有用程度当然将取决于数据的粒度。例如,如果您没有在DATETIME值中存储微秒,则“MICROSECOND”将仅限制使用。

答案 2 :(得分:7)

在以前的版本中使用TIME_TO_SEC for mysql

SELECT TIME_TO_SEC(时间列)FROM表

答案 3 :(得分:3)

我在mysql中使用

TO_SECONDS(您的日期在此处)将日期转换为第0年的秒数

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

答案 4 :(得分:2)

函数UNIX_TIMESTAMP( datetime )返回unix时间,该时间恰好是自1970年1月1日至1970年0000 UTC以来的秒数。这可能是你所需要的,但如果你正在处理2037年以后的出生日期,历史日期或日期,那就不一定了。

答案 5 :(得分:2)

从mysql 5.5.0开始,您可以使用to_seconds()

TO_SECONDS(FIELD_NAME)

FIELD_NAME必须为DATETIME类型

答案 6 :(得分:0)

我已经为您的问题创建了自己的查询:

SELECT HOUR(`colname`) * 3600 + MINUTE(`colname`) * 60 + SECOND(`colname`)
FROM widgets
WHERE id = 1;
  • 如果必须采取特定行,请使用id = 1
  • 输出将以秒为单位。