sql语句中日期相减的操作实例代码

目录
  • 1. 直接用日期时间做减法
  • 2. 使用 datediff 函数
  • 补充:下面来看个实例
  • 总结

1. 直接用日期时间做减法

GETDATE() 和 NOW() 查出来的时间一样,都带时分秒

select GETDATE(),NOW() FROM t_表名;

curdate() 只显示 年月日

select curdate(),NOW() FROM TB_表名;

如果直接做减法,只能得到两个时间相差多少天

select (NOW()-日期时间字段) FROM T_表名;

若不要 时分秒,可以考虑用 curdate()

select (curdate()-日期时间字段) FROM T_表名;

2. 使用 datediff 函数

datediff 函数还有其他的玩法,在这就不多加赘述了。 两日期 间隔年

select datediff(year, 开始日期,结束日期) FROM T_表名;;

俩日期 间隔季

select datediff(quarter, 开始日期,结束日期) FROM T_表名;

俩日期 间隔月

select datediff(month, 开始日期,结束日期) from 表名;

俩日期 间隔天

select datediff(day, 开始日期,结束日期) FROM T_表名; 

俩日期 间隔周

select datediff(week, 开始日期,结束日期) FROM T_表名;

俩日期 间隔小时

select datediff(hour, 开始日期,结束日期) FROM T_表名;

俩日期 间隔分

select datediff(minute, 开始日期,结束日期) FROM T_表名;

俩日期 间隔秒

select datediff(second, 开始日期,结束日期) FROM T_表名; 

获取近 7 天 的年月日,包括今天

select (CURDATE() - 6) as dateList
union
select (CURDATE() - 5) as dateList
union
select (CURDATE() - 4) as dateList
union
select (CURDATE() - 3) as dateList
union
select (CURDATE() - 2) as dateList
union
select (CURDATE() - 1) as dateList
union
select (CURDATE() - 0) as dateList

查询 当前 年月日 时分秒

SELECT NOW(), CURDATE(), CURTIME()

好的代码像粥一样,都是用时间熬出来的

补充:下面来看个实例

我有一个表,其中有四个字段:开始天数,开始时间,到达天数,到达时间(这四个字段都是varchar类型)

例如:某一条记录: 1 16:00 2 12:20

我的目的就是用 select(到达天数+到达时间)-(开始天数+开始时间) as 花费时间 from table

例如上条记录得到的就是 (2*24:00+12:20)-(24:00+16:00)=20:00

这样的sql语句该怎么写???

declare @t table
(
beginday int,
begintime varchar(20),
endday int,
endtime varchar(20)
)

insert @t select 1,"16:00",2,"12:20"
union all select 1,"3:00",3,"19:10"
select

date=rtrim(date/60)+":"+rtrim(date%60)
from
(select date=datediff(mi,1,dateadd(d,endday-beginday,beginday)-begintime+endtime)from @t )t
date
-------------------------
20:20
64:10

方法二

declare @t table(开始天数 varchar(10),开始时间 varchar(10),到达天数 varchar(10),到达时间 varchar(10))
insert @t select "1", "16:00","2","12:20"
--如果开始天数,到达天数大于31
select 到达天数 * 24 + datepart(hh,到达时间) - 开始天数 * 24 - datepart(hh,开始时间)
from @t

总结

到此这篇关于sql语句中日期相减操作的文章就介绍到这了,更多相关sql语句日期相减内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL 日期时间加减的示例代码

    目录 1.MySQL加减某个时间间隔 2.日期相减 最近在复习MySQL,正好看到了MySQL 日期时间,本文就给自己留个笔记,顺便分享给大家 now (); 当前具体的日期和时间 curdate (); 当前日期 curtime(); 当前时间 1.MySQL加减某个时间间隔 设置当前日期变量 set @dt = now(); //设置当前日期 select @dt; //查询变量值 加减某个时间间隔函数date_add()与date_sub() date_add('某个日期时间',inter

  • MySQL日期加减函数详解

    1. addtime() 为日期加上指定秒数 select addtime(now(),1); -- 加1秒 2. adddate() 有两种用法,第二个参数直接填数字的话是为日期加上指定天数,填interval的话是为日期加上指定的interval时间 select adddate(now(),1); -- 加1天 select adddate(now(), interval 1 day); -- 加1天 select adddate(now(), interval 1 hour); --加1

  • sql server日期相减 的实现详解

    复制代码 代码如下: select datediff(year, 开始日期,结束日期);     --两日期间隔年select datediff(quarter, 开始日期,结束日期); --两日期间隔季select datediff(month, 开始日期,结束日期); --两日期间隔月select datediff(day, 开始日期,结束日期); --两日期间隔天select datediff(week, 开始日期,结束日期); --两日期间隔周select datediff(hour,

  • SQL Server日期加减函数DATEDIFF与DATEADD用法分析

    本文实例讲述了SQL Server日期加减函数DATEDIFF与DATEADD用法.分享给大家供大家参考,具体如下: SQL Server 日期的加减函数: DATEDIFF    DATEADD DATEDIFF: 返回跨两个指定日期的日期边界数和时间边界数, 语法:DATEDIFF ( datepart , startdate , enddate ) 用 enddate 减去 startdate 注:datepart 指定应在日期的哪一部分计算差额的参数,其日期相减时,只关注边界值,例: S

  • sql语句中日期相减的操作实例代码

    目录 1. 直接用日期时间做减法 2. 使用 datediff 函数 补充:下面来看个实例 总结 1. 直接用日期时间做减法 GETDATE() 和 NOW() 查出来的时间一样,都带时分秒 select GETDATE(),NOW() FROM t_表名; curdate() 只显示 年月日 select curdate(),NOW() FROM TB_表名; 如果直接做减法,只能得到两个时间相差多少天 select (NOW()-日期时间字段) FROM T_表名; 若不要 时分秒,可以考虑

  • Django中的cookie与session操作实例代码

    添加cookie: def login(req): if req.method=="POST": uf = UserInfoForm(req.POST) if uf.is_valid(): username = uf.cleaned_data["username"] password = uf.cleaned_data["password"] print username,password users = UserInfo.objects.fil

  • Mybatis和orcale update语句中接收参数为对象的实例代码

    Mybatis的 mapper.xml 中 update 语句使用 if 标签判断对像属性是否为空值. UserDTO是传过来参数的类型,userDTO是在mapperDao接口中给更新方法的参数起的别名. mapperDao.java int updata(@Param("userDTO") UserDTO userDTO); mapper.xml <update id="updata" parameterType="UserDTO"&g

  • javascript 日期相减-在线教程(附代码)

    代码如下: <SCRIPT LANGUAGE="JavaScript"> <!-- //说明:这里用了Math.ceil()函数,向上取整,即零头算一天,^_^ var strDate1 = "2003-06-17 03:03:40.0"; var strDate2 = "2004-09-18 12:03:12.0"; strDate1=strDate1.substring(0,strDate1.lastIndexOf(&quo

  • mysql中的日期相减的天数函数

    目录 mysql日期相减的天数函数 语法 实例 例子 1 例子 2 mysql中日期相减的部分函数 两个日期相减,得到相差的分钟 两个日期相减的到相差的小时 总结 mysql日期相减的天数函数 DATEDIFF() 函数返回两个日期之间的天数. 语法 DATEDIFF(date1,date2) date1 和 date2 参数是合法的日期或日期/时间表达式. 注释:只有值的日期部分参与计算. 实例 例子 1 使用如下 SELECT 语句: SELECT DATEDIFF('2008-12-30'

  • Oracle如何在SQL语句中对时间操作、运算

    目录 0.date与timestamp 1.获取系统当前时间 2.ORACLE里获取一个时间的年.季.月.周.日的函数: 3.日期操作 4.常用的时间戳 5.查询某时间范围 总结 0.date与timestamp 1)区别 date精确到年月日时分秒,timestamp更精确一些: 但这个不重要,重要的是,实践中我从Oracle数据库取date类型字段,前端展示时分秒都是0,网上说数据库类型是date取到前端就是这样,只能精确到日,后面都是默认填0:我给字段换成timestamp确实问题解决了,

  • SQL语句中的DDL类型的数据库定义语言操作

    目录 SQL语句之DDL类型的数据库定义语言 1.DDL类型的SQL语句基本概述 2.DDL类型的SQL语句之数据库层面的操作 2.1.创建一个数据库 2.2.查看MySQL中有哪些数据库 2.3.进入某个数据库 2.4.查看当前处于哪个数据库中 3.DDL类型的SQL语句之数据库表层面的操作 3.1.创建一张数据表 3.2.查看当前数据库中所有的数据表 3.3.查询某张表的表结构 3.4.查询某张表的建表语句 3.5.在现有表中添加新的字段 3.6.修改现有表中的字段数据类型和字段名称 3.7

  • sql语句中如何将datetime格式的日期转换为yy-mm-dd格式

    如果在asp中我们可以用year(date())这样的格式在sql语句中,不知道这样的效率怎么样不过是个方法 复制代码 代码如下: select substring(convert(char,registdate,120),1,10) as registdate from tbuser

  • 在 SQL 语句中处理 NULL 值的方法

    在日常使用数据库时,你在意过NULL值么? 其实,NULL值在数据库中是一个很特殊且有趣的存在,下面我们一起来看看吧: 在查询数据库时,如果你想知道一个列(例如:用户注册年限 USER_AGE)是否为 NULL,SQL 查询语句该怎么写呢? 是这样: SELECT * FROM TABLE WHERE USER_AGE = NULL 还是这样? SELECT * FROM TABLE WHERE USER_AGE IS NULL 当然,正确的写法应该是第二种(WHERE USER_AGE IS

  • 浅谈keras中的Merge层(实现层的相加、相减、相乘实例)

    [题目]keras中的Merge层(实现层的相加.相减.相乘) 详情请参考: Merge层 一.层相加 keras.layers.Add() 添加输入列表的图层. 该层接收一个相同shape列表张量,并返回它们的和,shape不变. Example import keras input1 = keras.layers.Input(shape=(16,)) x1 = keras.layers.Dense(8, activation='relu')(input1) input2 = keras.la

随机推荐