2016-12-02 143 views
3

想知道是否有人可以帮助解决我在SQL Server中遇到的问题。将年份日月转换为月份日

下面是什么,我试图改变日期从2016-09-01September 01

试图将日期转换时,我收到错误消息。

set @start_date = '2016-09-01' 
set @end_date = '2016-11-21' 

SELECT pol AS [Policy], 
DATENAME(MONTH, pol_dt) + ' ' + CAST(DATEPART(DAY, pol_dt)AS VARCHAR(2)) AS [Policy Date] 
from pol_t 
where pol_dt>= @start_date 
and pol_dt<= @end_date 
+1

哪个SQL服务器版本? – Pred

+0

'pol_dt'的类型是什么?它应该是'date'或'datetime'。你确定问题出现在'SELECT'子句中,而不是WHERE子句中的隐式转换吗?将变量的类型更改为日期,并使用明确的格式赋值,例如:'declare @start_date date ='20160901'' –

回答

0

试试这个...

SELECT DATENAME(MONTH, SYSDATETIME())+ ' ' + RIGHT('0' + DATENAME(DAY, SYSDATETIME()), 2) AS [Month DD]; 
+2

您为什么要更改?你为什么不格式化查询?更多信息:[回答] – Pred

+0

非常感谢。 –

+0

欢迎提及 –

1

IF 2012+你可以使用格式

Declare @D Date='2016-09-01' 
Select Format(@D,'MMMM dd') 

返回

September 01 

格式()有一些伟大的功能,但它不知道它的性能

+0

鉴于2012年是最早支持的版本,所以这个答案适用于所有支持的SQL Server版本 –

+0

@PanagiotisKanavos非常真实,但我仍然对2008年及以下的问题数量感到震惊。 –

相关问题