【问题标题】:T- SQL compare two date column and find month numberT-SQL比较两个日期列并找到月份数
【发布时间】:2019-11-14 15:54:28
【问题描述】:

我是这个行业的新手。希望您能帮助我解决 CASE 声明的以下问题。我需要比较存在日期值的两列,但结果将如下图所示。

谢谢 纳耶姆

【问题讨论】:

  • 你尝试过什么?
  • 我什么都没试过 :-(

标签: sql sql-server date compare case


【解决方案1】:

试试这样的...

select
    first_date
    ,second_date
    ,case 
        when first_date > second_date
            then
                substring(datename(month,first_date),1,3) + '-' + substring(datename(year,first_date),3,2)
        else
            substring(datename(month,second_date),1,3) + '-' + substring(datename(year,second_date),3,2)
    end as result
from (
    select CONVERT(datetime, '2017-08-25') as first_date ,CONVERT(datetime, '2017-02-02') as second_date
    union
    select CONVERT(datetime, '2018-01-25') as first_date ,CONVERT(datetime, '2018-12-04') as second_date
    union
    select CONVERT(datetime, '2019-11-14') as first_date ,CONVERT(datetime, '2019-11-14') as second_date
) x;
;

【讨论】:

  • 非常感谢 Dave 的帮助 :-) 它的作用就像魅力一样......太棒了......
【解决方案2】:

假设您的日期列确实是dates,您似乎在寻找:

select format(coalesce(start_date_1, start_date_2), 'MMM-yy')
from t;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    相关资源
    最近更新 更多