奇怪的行为Datediff Java Datediff SQL

时间:2019-01-07 12:42:04

标签: java tsql datetime

当我尝试在Java中以秒为单位计算两个日期之间的差异时,我得到的输出与sql中的输出不同。

SQL:

select DATEDIFF(second, 
                 convert(datetime, '2014-01-07 11:00:27', 120), 
                 convert(datetime, '2018-07-09 00:00:00', 120))

=> 142001973

    SimpleDateFormat NORM_DATE_TO_STRING = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    Date reference = NORM_DATE_TO_STRING.parse("2014-01-07 11:00:27");

    Date we =  NORM_DATE_TO_STRING.parse("2018-07-09 00:00:00");

    long diff = (we.getTime()-reference.getTime())/1000;

=> 141998373

关闭一小时,我不知道为什么。

预先感谢

1 个答案:

答案 0 :(得分:2)

Java版本考虑了夏令时,而SQL版本则没有考虑。