我在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'开始的秒数
如果不带参数调用,返回Unix时间戳(seconds since)'1970-01-01 00:00:00' UTC)作为无符号整数。如果UNIX_TIMESTAMP ()使用日期参数调用,它返回参数的值as seconds since '1970-01-01 00:00:00' UTC。date可以是一个date字符串,DATETIME字符串、TIMESTAMP或格式为YYMMDD或的数字名称。
SELECT unix_timestamp(now()) - unix_timestamp('2007-03-19 09:50:00')
你想要这个:
SELECT unix_timestamp(column1) - unix_timestamp(column2) from tableName
实际操作
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()
来格式化这个datetime列值。TO_SECONDS()从MySQL 5.5.0开始可用。
MYSQL - datetime to seconds也为输出提供了另一种解决方案。