如何在Sql中将两个日期连接为字符串

时间:2014-09-15 19:08:15

标签: sql sql-server sql-server-2008

我有一个日期字段,我需要在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中显示

2 个答案:

答案 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)