当前位置:
首页 >
处理时间_5_计算时间列所在年的周序号
发布时间:2024/9/27
33
豆豆
生活随笔
收集整理的这篇文章主要介绍了
处理时间_5_计算时间列所在年的周序号
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
计算时间列所在年的周序号
需求描述
需求:对EMP表里员工KING和SMITH的hiredate入职时间差,基于生成的日期算每天所在的周,相对于年.
解决方法:通过DATE_FORMAT函数来完成.
注: 数据库数据集SQL脚本详见如下链接地址
员工表结构和数据初始化SQL脚本
SQL代码
-- Mysql: SELECT B.ename b_Ename,B.HIREDATE b_hiredate,A.ename a_Ename, A.HIREDATE a_hiredate ,DATE_ADD(A.hiredate,INTERVAL pos DAY) date_Seq ,DATE_FORMAT(DATE_ADD(A.hiredate,INTERVAL pos DAY),'%U') AS weekno_Year FROM emp A,emp B,(SELECT i-1 AS pos FROM tb_incr) seq WHERE A.ename = 'SMITH' AND B.ename = 'KING' AND seq.pos <=DATEDIFF(B.HIREDATE,A.HIREDATE)注:mysql里也可以通过yearweek函数来实现
-- mysql SELECT YEARWEEK(now()) 'yearWeek', SUBSTRING(YEARWEEK(now()),1,4)'year', SUBSTRING(YEARWEEK(now()),5,2) 'weekOfyear'
执行结果
-- SQL Server SELECT B.ename b_Ename,B.HIREDATE b_hiredate,A.ename a_Ename, A.HIREDATE a_hiredate ,DATEADD(DAY,seq.pos,A.HIREDATE) AS date_Seq ,DATEPART(WK,DATEADD(DAY,seq.pos,A.HIREDATE)) AS weekno_Year FROM emp A,emp B,(SELECT number AS pos FROM master.[dbo].[spt_values] WHERE type = 'P') seq WHERE A.ename = 'SMITH' AND B.ename = 'KING' AND seq.pos <= DATEDIFF(DAY,A.HIREDATE,B.HIREDATE)
总结
以上是生活随笔为你收集整理的处理时间_5_计算时间列所在年的周序号的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 敢入刀山火海的陆军特种部队
- 下一篇: 线性代数之矩阵偏导