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

例子:

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

原文地址:https://www.cnblogs.com/suqq/p/11669782.html

时间: 2024-08-30 12:19:03

sql查询数据枚举判断转换及取时间间隔内数据的相关文章

SQL查询某表是否存在及返回新增数据的ID

下面简单介绍了SQL查询某表是否存在以及返回新增数据的ID值. 1.查询表是否存在: 表名:"t_Demo", type = 'u'  查看是不是用户表 select * from sysobjects where id = object_id('t_Demo') and type = 'u' select * from sys.tables where name='t_Demo' and type = 'u' 2.查询字段是否存在: 表名:"t_Demo", 字段

sql 查询当前数据库所有表格以及所有表格数据条数

select b.name as tablename , a.rowcnt as datacount from sysindexes a , sysobjects b where a.id = b.id and a.indid < 2 and objectproperty(b.id, 'IsMSShipped') = 0

Sql Server日期查询-SQL查询今天、昨天、7天内、30天

记录转载自:http://www.cnblogs.com/suruozhong/p/5974595.html 今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=1 7天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,

SQL查询今天、昨天、7天内、30天

今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=1 7天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=7 30天内的所有数据:select * from 表名 where DateDiff

SQL查询今天、昨天、7天内、30天 - 转

今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=1 7天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=7 30天内的所有数据:select * from 表名 where DateDiff

Sql Server日期查询-SQL查询今天、昨天、7天内、30天(转)

今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=1 7天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=7 30天内的所有数据:select * from 表名 where DateDiff

如何将sql查询出的列名用注释代替?

如何将sql查询出的列名用注释代替? 大家正常的工作的时候,会有这样的要求,客户想要看下原始数据,但是呢.前台导出又麻烦,这时候只能从数据库拷贝出来一份.但是呢,数据库里面的字段客户又看不明白,只能用数据库里面的注释.但是这时候,如果要求很多张表,难道我们要一个个复制吗?这也太tm蠢了. 1 查看我们表 select * from user_col_comments where table_name='TNAME'; 2 写上函数 create or replace function f_col

SQL查询入门(上篇)

引言 SQL语言是一门简单易学却又功能强大的语言,它能让你快速上手并写出比较复杂的查询语句.但对于大多数开发者来说,使用SQL查询数据库并没有一个抽象的过程和一个合理的步骤,这很可能会使在写一些特定的SQL查询语句来解决特定问题时被"卡"住,本系列文章主要讲述SQL查询时一些基本的理论,以及写查询语句的抽象思路. SQL查询简介 SQL语言起源于1970年E.J.Codd发表的关系数据库理论,所以SQL是为关系数据库服务的.而对于SQL查询,是指从数据库中取得数据的子集,这句话貌似听着

MyBatis直接执行SQL查询及批量插入数据

MyBatis直接执行SQL查询及批量插入数据 一.直接执行SQL查询: 1.mappers文件节选 <resultMap id="AcModelResultMap" type="com.izumi.InstanceModel">  <result column="instanceid" property="instanceID" jdbcType="VARCHAR" />  <