首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从硬编码的日期值中获取月份和日期

从硬编码的日期值中获取月份和日期
EN

Stack Overflow用户
提问于 2018-06-15 02:51:01
回答 4查看 81关注 0票数 3
select convert(varchar(5),getdate(), 100)

如果运行上面的查询,结果是'Jun 1',因此月份的前三个字母、一个空格和日期的第一个数字。但是如果我将getdate()函数替换为硬编码的值,比如下面的查询,结果会发生很大的变化。

select convert(varchar(5), '2018-05-01 00:00:00.000', 100)

如果结果必须是月份的前三个字符和两位数的日期,并且没有空格,那么如何编写查询

EN

回答 4

Stack Overflow用户

发布于 2018-06-15 03:04:24

尝尝这个

DECLARE @date DATE;


set @date = '2018-05-01 00:00:00.000';
select convert(varchar(6),@date, 100);
票数 1
EN

Stack Overflow用户

发布于 2018-06-15 03:12:39

format()之前,有datename()。这应该是您想要的结果:

select left(datename(month, getdate()), 3) + right('00' + datename(day, getdate()), 2)

您也可以使用您的方法,但需要替换空格:

select replace(replace(convert(varchar(6), cast('2018-05-01 00:00:00.000' as date), 100), '  ', '0'), ' ', '0')
票数 1
EN

Stack Overflow用户

发布于 2018-06-15 02:54:52

这是因为您正在传递varcharstring类型的date '2018-05-01 00:00:00.000',如下所示:

select left('2018-05-01 00:00:00.000', 5)

如果您想要相同结果,则需要将它们转换为合理的格式

select convert(varchar(6),cast('2018-06-01' as date), 100)

我读错了最后一行,如果你不想要空格,那就简单地使用replace()

select replace(replace(convert(varchar(6), cast('2018-06-01' as date), 100), '  ', '0'), ' ', '0')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50864086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档