Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL Server中提取月号并将其转换为月名_Sql_Sql Server_Database - Fatal编程技术网

在SQL Server中提取月号并将其转换为月名

在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-

我遇到了一个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-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是的,这让我对它的实现感到困惑