可以簡化此查詢(MSSQL)嗎?從日期開始的月份和日期
SELECT RIGHT(STR(MONTH('2014-05-02'))+100,2) + '-'
+ RIGHT(STR(DAY('2014-05-02'))+100,2)
我想要一個日期的月份和日期,但如果月份/日期只有一個數字,則總是使用前導零。在這個日期2014-05-02
我只想要05-02
。我能做到這一點與此查詢,但我不知道是否有一個簡單的方法...
可以簡化此查詢(MSSQL)嗎?從日期開始的月份和日期
SELECT RIGHT(STR(MONTH('2014-05-02'))+100,2) + '-'
+ RIGHT(STR(DAY('2014-05-02'))+100,2)
我想要一個日期的月份和日期,但如果月份/日期只有一個數字,則總是使用前導零。在這個日期2014-05-02
我只想要05-02
。我能做到這一點與此查詢,但我不知道是否有一個簡單的方法...
請嘗試:
select RIGHT(CONVERT(nvarchar(10), GETDATE(), 126), 5)
對於例如,
select RIGHT(CONVERT(nvarchar(10),CONVERT(DATETIME, '2014-5-2'), 126), 5)
試試這個。 ..
SELECT LEFT(CONVERT(VARCHAR(10), GETDATE(), 110),5)
OR
SELECT LEFT(CONVERT(VARCHAR(8), GETDATE(), 10),5)
都返回相同的結果如下
RESULT: 05-23
。
如果你有一個字符串:
select format(convert(date, '2014-05-23', 126),'MM-dd');
如果你有一個日期:
select format(GetDate(),'MM-dd');
這可以真正幫助您。
DECLARE @A DATETIME = GETDATE()
SELECT CONVERT(VARCHAR(5),@A,110)
看來這類似的問題已經http://stackoverflow.com/a/13804170/1692632 – Darka
我想你確實有一個'DATE'列,而不是'CHAR'列? – Turophile
是的,這是'日期'欄。 – PJLG