ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

sql查询数据枚举判断转换及取时间间隔内数据

2019-10-14 10:04:11  阅读:490  来源: 互联网

标签:及取 wk 枚举 DATEADD dateadd select sql SELECT getdate


 

例子:

SELECT u.U_ChineseName AS 处理人,case u.U_Region
when 1then '省公司'
when 2then '西安分公司'
when 3then '铜川分公司'
when 4then '咸阳分公司'
when 5then '宝鸡分公司'
when 6then '渭南分公司'
when 7then '汉中分公司'
when 8then '安康分公司'
when 9then '商洛分公司'
when 10then '榆林分公司'
when 11then '延安分公司'END AS 建设单位,u.U_OaDepartment AS 部门,u.U_OaGroup AS 专业室,td.Td_Title AS 待办标题,td.Td_ReceiveTime AS 发送时间
FROM T_Todo AS td,T_User AS u WHERE (td.Td_Title LIKE '%设计批复%' OR td.Td_Title LIKE '%终验批复%' ) AND td.Td_ActionTime IS NULL AND td.Td_DeleteTime IS NULL  
AND td.Td_Type=1  AND td.Td_ReceiveActorId IN (SELECT u.U_Id FROM T_User WHERE u.U_DeleteTime IS NULL)
AND( u.U_Role  LIKE '%50%' OR u.U_Role  LIKE '%49%') 
AND td.Td_ReceiveTime<=dateadd(day, -3, getdate()) 
ORDER BY u.U_Region 

 

① case when 枚举值 them 名称 

②接收时间小于等于当前时间三天内数据

  资料补充 ; --1.  当前系统日期、时间 select getdate() --2015-01-06 09:27:27.277   --2.时间操作 dateadd  在向指定日期加上一段时间的基础上,返回新的 datetime 值 dateadd(datepart,number,date) 注:     datepart : year(yy, yyyy) | quarter(qq,q) | month(mm,m) | week(ww,wk) | day(dd,dy) | hour(h) | minute(mi,n) |  second (ss,s)| millisecond(ms)     date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。 例:     select getdate()                       select dateadd(year,1,getdate())    --2016-01-06 09:27:27.277      select dateadd(month,1,getdate())   --2017-02-06 09:27:27.277      select dateadd(day,1,getdate())     --2015-01-07 09:27:27.277     select dateadd(week,1,getdate())    --2015-01-13 09:27:27.277     select dateadd(weekday,1,getdate()) --2015-01-07 09:27:27.277     select dateadd(hour,1,getdate())    --2015-01-06 10:27:27.277     select dateadd(Minute,1,getdate())  --2015-01-06 09:28:27.277     select dateadd(Second,1,getdate())  --2015-01-06 09:28:28.277   --3. datediff 返回跨两个指定日期的日期和时间边界数。 datediff( date-part, startdate, enddate ) 注:     datepart : year(yy, yyyy) | quarter(qq,q) | month(mm,m) | week(ww,wk) | day(dd,dy) | hour(h) | minute(mi,n) |  second (ss,s)| millisecond(ms)     startdate 和 enddate 参数是合法的日期表达式。 返回值:(enddate)-(startdate) 例:  select datediff(year,getdate(),dateadd(year,2,getdate()))     --返回:2  SELECT FROM crm_contract where datediff(month,Subtime,getdate())=0  --查看crm_contract申请时间subtime是本月的数据    --4. datepart 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。 --如果需要得到自己需要的日期,则需要讲日期时间格式化 SELECT DATEPART(year, getdate())    as '年份'   SELECT DATEPART(month, getdate())   as '月份' SELECT DATEPART(day, getdate())     as '日期' SELECT DATEPART(week, getdate())    as  '本年第几周数' SELECT (DATEPART(weekday, getdate())-1)  as '今天是周几?'  SELECT DATEPART(hour, getdate())    as '小时' SELECT DATEPART(Minute, getdate())  as '分钟'  SELECT DATEPART(Second, getdate())  as '秒时'   --5. datename 返回代表指定日期的指定日期部分的字符串 SELECT datename(weekday, getdate())                  as '今天是星期几?' SELECT datename(month,convert(varchar(10), getdate(),126)) as '今天是几月份?' SELECT datename(day,convert(varchar(10), getdate(),126))   as '今天是几号?' SELECT datename(year,convert(varchar(10), getdate(),126))   as '今年是哪年?'   --上周周一 SELECT   DATEADD(wk,   DATEDIFF(wk,0,getdate()),-7) --上周周天 SELECT   DATEADD(wk,   DATEDIFF(wk,0,getdate()),-1) --.本周周一 SELECT   DATEADD(wk,   DATEDIFF(wk,0,getdate()),0) --.本周周天  select   dateadd(wk,datediff(wk,0,getdate()),6) --下周周一 select   dateadd(wk,datediff(wk,0,getdate()),7) --下周周天 select   dateadd(wk,datediff(wk,0,getdate()),13) --1.本月第一天   SELECT   DATEADD(mm,   DATEDIFF(mm,0,getdate()),   0)       --.本月最后一天   SELECT   dateadd(ms,-3,DATEADD(mm,   DATEDIFF(m,0,getdate())+1,   0))      --.本周星期一   SELECT   DATEADD(wk,   DATEDIFF(wk,0,getdate()),   0)     --.本周星期天    select   dateadd(wk,datediff(wk,0,getdate()),6)     --.本年第一天   SELECT   DATEADD(yy,   DATEDIFF(yy,0,getdate()),   0)      --.本年最后一天   SELECT   dateadd(ms,-3,DATEADD(yy,   DATEDIFF(yy,0,getdate())+1,   0))     --.本季度第一天   SELECT   DATEADD(qq,   DATEDIFF(qq,0,getdate()),   0)          --.当天的半夜   SELECT   DATEADD(dd,   DATEDIFF(dd,0,getdate()),   0)          --.上个月的最后一天   SELECT   dateadd(ms,-3,DATEADD(mm,   DATEDIFF(mm,0,getdate()),   0))          --.去年的最后一天   SELECT   dateadd(ms,-3,DATEADD(yy,   DATEDIFF(yy,0,getdate()),   0))             --.本月的第一个星期一   select   DATEADD(wk,   DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())),   0)

资料原文:https://www.cnblogs.com/Li-yuan/p/6180391.html

标签:及取,wk,枚举,DATEADD,dateadd,select,sql,SELECT,getdate
来源: https://www.cnblogs.com/suqq/p/11669782.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有