MySQL 减去两个日期时间并以纳秒为单位返回

标签 mysql date datetime

我在 MySQL 表中有 2 个 datetime 列。

我想减去它并返回结果和纳秒精度

到目前为止,这是我的代码。

select end,start,end-start from job where id=1;

我有这样的结果

'2014-04-02 12:30:00', '2014-04-02 10:30:00', 20000.000000

好奇MySQL是怎么直接减的,20000.000000是怎么来的。

我不擅长处理日期。哪种方法最好?

最佳答案

unix_timestamp : 如果你想将 UNIX TIMESTAMP 转换为自 '1970-01-01' 以来的秒数


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. date may be a DATE string, a DATETIME string, a TIMESTAMP, or a number in the format YYMMDD or YYYYMMDD.

考虑一下:

SELECT unix_timestamp(now()) - unix_timestamp('2007-03-19 09:50:00')

你想要这个:

SELECT unix_timestamp(column1) - unix_timestamp(column2) from tableName

See it in action

SELECT start_time, 
       end_time, 
       ( Unix_timestamp(start_time) - Unix_timestamp(end_time) ) * 1000000000 AS 
       NanoSeconds 
FROM   job 

输出:

start_time      |       end_time           |    NanoSeconds
April, 02 2014 12:30:00 April, 02 2014 10:30:00 7200000000000

因为我们也可以使用 DATE_FORMAT() 格式化此日期时间列值。 TO_SECONDS()从 MySQL 5.5.0 开始可用。

MYSQL - datetime to seconds还可以轻松了解您想要的输出的另一种解决方案。

关于MySQL 减去两个日期时间并以纳秒为单位返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30416979/

相关文章:

html - 在 TextBoxFor 类型日期中将日期格式设置为 dd/MM/yyyy

ruby-on-rails - 如果今天显示 Rails created_at?

php - 如何防止 PHP 中的 SQL 注入(inject)?

php - 我的 sql 查询使用 GROUP BY 函数获取中间行值

mysql - MySql DB 集群还是唯一索引?

php - 可编辑的动态php表

javascript - IE 将字符串转换为日期时删除 4 小时表格日期

Android 和 iOS 库的行为就像 1996 年之前从未有过夏令时一样

java - 从持续时间计算 LocalDateTime

java - 重试打开目录中的文件