在SQL Server中提取月号并将其转换为月名
我遇到了一个SQL查询:在SQL Server中提取月号并将其转换为月名,sql,sql-server,database,Sql,Sql Server,Database,我遇到了一个SQL查询: select IssuedDate, Convert(char(4), IssuedDate, 0) from TempTable 这是它的输出: IssuedDate Null ---------------------------------- 1964-02-17 00:00:00.0000000 Feb 2018-08-28 00:00:00.0000000 Aug 2018-
select IssuedDate, Convert(char(4), IssuedDate, 0)
from TempTable
这是它的输出:
IssuedDate Null
----------------------------------
1964-02-17 00:00:00.0000000 Feb
2018-08-28 00:00:00.0000000 Aug
2018-08-28 00:00:00.0000000 Aug
2018-08-28 00:00:00.0000000 Aug
任何人都可以告诉我
convert
函数如何工作,以及如何将月数转换为月名吗?这是使用默认格式进行转换(第三个参数是0
),即“mon-dd-yyyy-hh:mim”。也就是说,格式化字符串中的前三个字符是月份缩写
转换为长度为四的字符串,它只保留前四个字符。这将是月份的缩写和以下字符
我认为,更明智的做法是:
left(datename(month, issueddate), 3)
这至少适用于英语,其中月份缩写是月份名称的第一个字符。为什么不使用
DATENAME
的可能重复?至于它的工作方式,它使用CONVERT
和a。但它想要月名的前3个字符,后跟一个空格,这似乎很奇怪。@larnu是的,这让我对它的实现感到困惑