【问题标题】:Difference between two dates, expressed as Years, Months, Days两个日期之间的差异,表示为年、月、日
【发布时间】:2016-03-22 19:02:51
【问题描述】:

试图获取两个日期之间经过的时间。

假设开始日期是 01/01/2015,结束日期是 04/05/2015 - 我如何将经过的时间表示为 4 个月零 3 天?

使用 SSMS 2012。

【问题讨论】:

  • 指定使用的 dbms。 (其中许多在日期/时间方面与 ANSI SQL 相去甚远。)
  • 1月1日到4月5日,不是3个月零4天吗?
  • @jarlh,让我猜猜:美国?
  • 对不起,我今天有点累。但如果产品和程序员只能使用 ANSI/ISO 日期格式,即 YYYY-MM-DD,那就更容易了。
  • 大家好,使用 SSMS 2012 - 来自英国,所以上面的日期是 5 月 4 日!

标签: sql date-difference


【解决方案1】:

由于 Muhammad 已经给出了 MYSQL 和 SQL 服务器的答案,我将补充一点,如果您使用的是 Oracle,您可以简单地减去日期:

TO_DATE('2015-01-01', 'YYYY-MM-DD') -  
TO_DATE('2015-04-05', 'YYYY-MM-DD')

【讨论】:

    【解决方案2】:

    下面告诉你两个日期的天数之间的差异,显然你还没有告诉我们你的 DBMS,所以我发布了两种可能性:

    MySQL 语法:

    DATEDIFF(date1,date2) 
    DATEDIFF('2014-11-30','2014-11-29')
    

    SQL Server 语法:

    DATEDIFF(datepart,startdate,enddate)
    DATEDIFF(day,'2014-08-05','2014-06-05')
    

    链接:

    MySQL请访问:http://www.w3schools.com/sql/func_datediff_mysql.asp

    SQL Server请访问:http://www.w3schools.com/sql/func_datediff.asp

    【讨论】:

    • 如果您正在运行 SQL Server,或者? (仍然没有指定有问题的 dbms。)
    • 我已经更正了答案,希望对您有所帮助。
    • 您好,感谢您的回答。我需要将它表示为年、月、日,而不仅仅是几天。
    猜你喜欢
    • 2014-04-07
    • 2022-10-02
    • 2019-08-08
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多