如何仅从SQL Server DateTime数据类型返回带格式的日期

时间:2018-09-10 06:57:16

标签: sql sql-server

我知道有很多与此相关的问题。我试图找到答案,但找不到。

当我写SELECT CONVERT(date, getdate()) from tblBlogs

此查询给我这样的结果2018-09-10

但是我想10, September, 2018

我希望有人能帮助我

4 个答案:

答案 0 :(得分:3)

如果您的SQL Server版本高于2012,则可以尝试使用FORMAT函数进行修改。

SELECT FORMAT(getdate(),'dd,MMMM,yyy')

sqlifddle


或者您可以使用DATENAME函数将名称作为您期望的结果。

SELECT DATENAME(day,Getdate())+','+DATENAME(month,Getdate())+','+DATENAME(year,Getdate())

sqlfiddle

结果

10,September,2018

答案 1 :(得分:0)

尝试使用FORMAT

您可以根据需要指定日期格式

SELECT FORMAT(getdate(),'dd,MMMM,yyy') from tblBlogs;

答案 2 :(得分:0)

我个人尝试避免将FORMAT应用于数据集会非常慢。另一种方法是使用DATENAME

DATE NAME(DAY,GET DATE()) +', ' + DATENAME(MONTH,GETDATE()) + ', ' + DATENAME(YEAR,GETDATE())

但是,如果是显示格式,通常最好在表示层而不是DBMS中进行。

答案 3 :(得分:0)

如果您的SQL Server不支持FORMAT功能

SELECT CAST(DAY(@DateTime) AS VARCHAR) + ', ' + DATENAME(MONTH, @DateTime) + ', ' + CAST(YEAR(@DateTime) AS VARCHAR)