我对我制作的零件使用日期代码,格式如下:
7249
它必须是 4 位数字。第一个数字"7"是当前年份的最后一位数字。接下来的数字是自一年的第一天以来的天数。所以今天是9/6,距离年初-"249"已有249天。
我正在尝试编写一个sql语句来自动创建此"日期代码">
到目前为止,我有这个
SELECT CONCAT(RIGHT(YEAR(GETDATE()), 1),
(
SELECT(DATEDIFF(dd, '12/31/2016', GETDATE()))
));
这有效,但是,如果日期距离一年的 1 日不到 100 天,它将不会填充任何零。例如,在 1 月 2 日,这将产生 72,而不是 7002。
请告知如何在需要时添加中间零。
谢谢
您可以使用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')
你可以像这样使用right('00'+doy,3)
:
select concat(right(year(getdate()),1)
,right('00'+datename(DayOfYear,'20170102'),3))
Rextester 演示:http://rextester.com/LQSR86847
返回7002