我想在SELECT
语句中以'DD-MMM-YYYY'
格式编写查询,例如:
'1-Jan-2019'
或'23-Mar-2018'
答案 0 :(得分:4)
简单
SELECT CONVERT(VARCHAR, GetDate(), 106)
返回:
23 Jan 2019
请参见 CAST and CONVERT
,其中 Date and Time Styles
如果您确实要返回'-'
分隔符,则可以这样做
SELECT REPLACE(CONVERT(VARCHAR, GetDate(), 106), ' ', '-')
返回:
23-Jan-2019
答案 1 :(得分:2)
您可以根据需要利用T-SQL FORMAT()请求输出和区域性的确切格式:
SELECT FORMAT(GETDATE(), '%d-MMM-yyyy', 'en')
自SQL Server 2012起可用
但是,更好的做法是在应用程序级别上控制格式
答案 2 :(得分:1)
如果放置破折号,例如那么'2018年1月1日'就可以直接使用了。如果您不知道数据库设置,它也是一种非常实用的格式。
请记住,不同语言的月份名称是不同的。
答案 3 :(得分:0)
通过将SQL中的Convert转换为数字格式,您可以轻松完成此操作。它将接近您想要的格式,但是对于您的格式,您将需要通过对转换结果使用Replace调用将字符串中的空格替换为破折号。
示例:
select REPLACE(CONVERT(VARCHAR(20), GetDate(), 106), ' ', '-')