我为我制作的部分使用日期代码,格式如下:
7249
必须是4位数。第一个数字'7'是当前年份的最后一位数字。接下来的数字是自今年第一年以来的日子。所以今天是今年第一天的9/6,249天 - '249'。
我正在尝试编写一个sql语句来自动创建这个'日期代码'
到目前为止,我有这个
SELECT CONCAT(RIGHT(YEAR(GETDATE()), 1),
(
SELECT(DATEDIFF(dd, '12/31/2016', GETDATE()))
));
但是,如果日期从一年的第一天开始少于100天,则不会填写任何零。例如,在1月2日,这将产生72,而不是7002。
请告知如何在需要时添加中间零。
感谢
答案 0 :(得分:1)
您可以使用DatePart(DAYOFYEAR,date)
示例强>
Declare @D date= '2017-01-02'
Select right(year(@D),1)+right('000'+DateName(DAYOFYEAR,@D),3)
<强>返回强>
<强> 7002 强>
或者因为你在2012 +
Select right(year(@D),1)+format(DatePart(DAYOFYEAR,@D),'000')
答案 1 :(得分:0)
你可以这样使用right('00'+doy,3)
:
select concat(right(year(getdate()),1)
,right('00'+datename(DayOfYear,'20170102'),3))
rextester演示:http://rextester.com/LQSR86847
返回7002