我想将日期和日期名称连在一起。我该怎么做。 我需要像
这样的输出2015-10-09 Friday
I got the DateName= `SELECT DATENAME(dw,'2015-10-09') as MyDateName`
是否可以在单个查询中创建它?
答案 0 :(得分:2)
试试这个:
select CAST('2015-10-09' as varchar(10)) + ' ' +DATENAME(dw,'2015-10-09')
<强> SQLFIDDLE DEMO 强>
如果您的日期已经是varchar格式,那么您不需要CAST日期,只需尝试使用+
select '2015-10-09' + ' ' +DATENAME(dw,'2015-10-09')
答案 1 :(得分:1)
由于您提供的值已经是一个字符串,而DATENAME也返回一个字符串,您可以只与+
连接:
SELECT '2015-10-09 ' + DATENAME(WEEKDAY,'2015-10-09') as MyDateName
假设实际上这是数据类型datetime的参数或列,您需要先将其转换为varchar。转换为包含Day名称的varchar没有内置样式,因此您必须自己分两部分完成工作。
有关内置格式,请参阅MSDN page on cast and convert。
为了我的例子,我将创建一个用于测试的日期时间变量:
DECLARE @d DATETIME; SET @d ='20151009';
然后将其转换为VARCHAR:
对于日期部分,ODBC最接近您要求格式为yyyy-mm-dd hh:mi:ss(24h)
的格式。因此,要将该格式的日期作为varchar,您可以将CONVERT用于该样式,值为20。
SELECT CONVERT(VARCHAR(10), @d, 20)
注意我已将其转换为VARCHAR(10)以截断输出中不需要的日期时间的时间部分。然后,如果你将它与一个空格和你已经解决的日期名称连接起来,你可以得到你的输出:
SELECT CONVERT(VARCHAR(10), @d, 20) + ' ' + DATENAME(WEEKDAY, '2015-10-09') AS MyDateName
(将我的变量替换为列名,如果你是从表中输出后添加一个FROM语句)
答案 2 :(得分:0)
您可以尝试以下代码:
SELECT
CAST(CAST(GETDATE() AS DATE) AS VARCHAR) + ' ' + DATENAME(DW, GETDATE()) AS [DATE_WITH_WEEKNAME]