我有一个日期字段,我需要在select语句中显示日期字段的周,
例如:如果日期为'2014-09-15 00:00:00',我需要显示为'2014-09-14至2014-09-20',即一周的开始日至结束日
我尝试过使用
Select dateadd(week, datediff(week, 0, getdate()), -1)+' to ' +DATEADD(wk, DATEDIFF(wk, 6, CURRENT_TIMESTAMP), 6 + 7)
但是它给了我转换失败,我怎么能写上面的内容才能在sql中显示
答案 0 :(得分:1)
这两个表达式
dateadd(week, datediff(week, 0, getdate()), -1)
和
DATEADD(wk, DATEDIFF(wk, 6, CURRENT_TIMESTAMP), 6 + 7)
返回Datetime
值,' to '
值为string
。
您需要将日期时间值转换为字符串,以将这些值连接在一起。
SELECT CONVERT(VARCHAR(23), dateadd(week, datediff(week, 0, getdate()), -1), 121)
+ ' to ' +
CONVERT(VARCHAR(23), DATEADD(wk, DATEDIFF(wk, 6, CURRENT_TIMESTAMP), 6 + 7), 121)
RESULT: 2014-09-14 00:00:00.000 to 2014-09-21 00:00:00.000
答案 1 :(得分:0)
你必须抛弃你的陈述 像这样
SELECT CONVERT(VARCHAR(10), dateadd(week, datediff(week, 0, getdate()), -1), 25) + ' to ' + CONVERT(VARCHAR(10), DATEADD(wk, DATEDIFF(wk, 6, CURRENT_TIMESTAMP), 6 + 7), 25)