c# - Sql Query中根据DateTime自定义引用Id的序列
问题描述
是否可以编写返回 18315-0921的sql查询
结果是基于时间的
18表示 2018
315表示一年中的某一天
0921表示当前时间。
解决方案
declare @TDATE as datetime2 = getdate();
select Right('0' + CAST(YEAR(@TDATE) % 100 as varchar(2)) , 2)
+ RIGHT('00' + CAST(DATEPART(y,@TDATE) as varchar(3)) , 3)
+ '-'
+ REPLACE(CONVERT(varchar(5),@TDATE, 114), ':', '');
所以我通过取一年的模数 100 得到 2 位数的年份数,例如 2014 % 100 是 14
然后我将其更改为字符串,如果需要,以'0'开头
为了获得一年中的天数,我使用带有“y”的 DatePart 来表示“一年中的天数”,如果需要,最多可以填充 2 位数字。
为了获得我转换为 hh:mi:ss:mmm 的时间,但只保留前 5 个字符,然后我将替换 ':' 什么都没有
推荐阅读
- c# - 如何使用 C# 在树视图中显示 SQL 数据(4 级深度)
- objective-c - 静态库中的类别在运行时未重新识别
- java - 垃圾收集器没有记录任何东西,我们有内存问题
- javascript - 如何创建列表项随机化器但只显示一次?
- python - 请求多页地址,在不更改 url 的情况下更改页面
- typo3 - TYPO3 将 vom 11.2.0 升级到 11.5.0 - 表单扩展和 EXT 的问题:前端中的路径
- javascript - 有没有办法循环遍历 HTML 测验以从“laber for”中获取值为“true”的文本?
- asp.net-mvc - 在 ASP.NET MVC 应用程序的 x 可编辑文本字段中自动完成
- r - cldList() 函数在添加紧凑型字母显示时表现异常
- amazon-cloudfront - VideoJS - 重定向具有预签名 URL 的请求