从约会中获取月和日

时间:2014-05-23 12:11:24

标签: sql sql-server query-optimization

可以简化此查询(MSSQL)吗?

SELECT RIGHT(STR(MONTH('2014-05-02'))+100,2) + '-' 
+ RIGHT(STR(DAY('2014-05-02'))+100,2)  

我想要从某个日期开始的月份和日期,但如果月/日中只有一位数,则始终使用前导零。在此日期2014-05-02我只想05-02。我可以用这个查询做到这一点,但我不知道是否有一个简单的方法...

5 个答案:

答案 0 :(得分:1)

SELECT CONVERT(CHAR(5), GETDATE(), 10)

结果:

05-23

答案 1 :(得分:0)

请尝试:

select RIGHT(CONVERT(nvarchar(10), GETDATE(), 126), 5)

例如,

select RIGHT(CONVERT(nvarchar(10),CONVERT(DATETIME, '2014-5-2'), 126), 5)

答案 2 :(得分:0)

试试这个......

SELECT LEFT(CONVERT(VARCHAR(10), GETDATE(), 110),5)

OR

SELECT LEFT(CONVERT(VARCHAR(8), GETDATE(), 10),5)

两者都返回相同的结果如下

RESULT: 05-23

答案 3 :(得分:0)

我喜欢使用格式。

如果你有一个字符串:

select format(convert(date, '2014-05-23', 126),'MM-dd');

如果您有约会日期:

select format(GetDate(),'MM-dd');

答案 4 :(得分:0)

这可以真的帮助你。

DECLARE @A DATETIME = GETDATE()

SELECT  CONVERT(VARCHAR(5),@A,110)

enter image description here