【问题标题】:Select Date query in SQLSQL中选择日期查询
【发布时间】:2017-12-31 08:49:12
【问题描述】:

我现在有一个日期列,如果我有这样的数据,我想在星期天写“S”

datecolumn 

1-1-2017
2-1-2017    
3-1-2017    
4-1-2017    
5-1-2017    
6-1-2017    
7-1-2017    
8-1-2017    
9-1-2017    
10-1-2017    
11-1-2017    
12-1-2017    
13-1-2017

如果在这个日期有星期天,那么如何在这样的日期写“太阳”而不是这样

select datecolumn from table1


datecolumn 

1-1-2017    
2-1-2017    
3-1-2017    
Sun    
5-1-2017   
6-1-2017    
7-1-2017    
8-1-2017    
9-1-2017    
10-1-2017    
Sun    
12-1-2017   
13-1-017

【问题讨论】:

    标签: sql-server date select


    【解决方案1】:

    如果您使用的是 SQL Server 2012+,请使用 IIF 语句。

    select
    IIF(DATEPART(DW, DateVal) = 1, 'Sun', Convert(varchar(12), datecolumn, 103)) AS datecolumn
    from tableName
    

    【讨论】:

    • 请您解释一下什么是DW以及为什么写=1?
    • DATEPART 是返回整数的日期时间函数之一。这里的 DW 是工作日,比如星期天(2017-07-23)的日期,DW 值是 1,星期一 2,星期二 3……以此类推。
    【解决方案2】:

    试试这样的:

    SELECT CASE WHEN DATEPART(DW, datecolumn) = 1 THEN 'Sun' ELSE CAST(datecolumn AS NVARCHAR(MAX)) END AS datecolumn
    FROM table1
    

    希望对你有帮助。

    PS - 如果您需要特定日期格式的日期,可能需要将 CAST(datecolumn AS NVARCHAR(MAX)) 修改为 CONVERT

    【讨论】:

    • 你会请这个 DATEPART(DW, servicestartdate) = 1 什么 DW 以及为什么你写 1?
    • 它的作用是检查该日期在一周中的哪一天 (DW),周日总是 1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    相关资源
    最近更新 更多