通过 SQL 选择语句创建'Date Code'



我对我制作的零件使用日期代码,格式如下:

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

最新更新