DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值
date2-date1
如:select datediff(day,'2004-09-01','2004-09-18') --返回:17
所以建议这样子修改:
显示为红色的:
Sql = "Select From Answer Where user like'%"&Trim(Request("id"))&"%' and datediff(day,DAT1,DAT2)>3"
显示为其他颜色的:
Sql = "Select From Answer Where user like'%"&Trim(Request("id"))&"%' and datediff(day,DAT1,DAT2)<3"
看你的字段是否与数据库中的字段对应,看user的数据类型是否是char 或varchar类型的,建议把数据库中的字段加上[],如[user],[dat2]。
你把查询语句复制到数据库中分析一下,看看能不能查询出来结果,如果可以的话就说明是你的查询语句没问题,看看别的错误。
返回两个日期相隔的天数:DATEDIFF(DAY,'20150210','20150725')
相隔的月数:DATEDIFF(MONTH,'20150210','20150725')
相隔的年数:DATEDIFF(YEAR,'20140210','20150725')
问题一:SELECT DATEDIFF( Day, '20080825', '20080901' )
问题二:SELECT DATEDIFF( Second, 2009-8-25 12:15:12', 2009-9-1 7:18:20') --返回相差秒数
或者
SELECT DATEDIFF( Minute, 2009-8-25 12:15:12', 2009-9-1 7:18:20') --返回相差分钟数
或者
SELECT DATEDIFF( Hour, 2009-8-25 12:15:12', 2009-9-1 7:18:20') --返回相差小时数
问题三:SELECT DATEDIFF( Day, 2009-8-25 12:15:12', 2009-9-1 7:18:20')
附:
DATEDIFF 函数使用说明:
返回跨两个指定日期的日期和时间边界数。
语法
DATEDIFF ( datepart , startdate , enddate )
参数
datepart
是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。
日期部分 缩写
year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms
startdate
是计算的开始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。
因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。
如果您只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。
有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。
enddate
是计算的终止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。
返回类型
integer
注释
startdate 是从 enddate 减去。如果 startdate 比 enddate 晚,返回负值。
当结果超出整数值范围,DATEDIFF 产生错误。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23647 秒。对于秒,最大数是 68 年。
计算跨分钟、秒和毫秒这些边界的方法,使得 DATEDIFF 给出的结果在全部数据类型中是一致的。结果是带正负号的整数值,其等于跨第一个和第二个日期间的 datepart 边界数。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之间的星期数是 1。
示例
此示例确定在 pubs 数据库中标题发布日期和当前日期间的天数。
USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO
日期不能相加,但是能相减, *** 作方法如下:
1首先,计算两个日期之间的天数。
在excel中,两个日期直接相减就可以得到两个日期间隔的天数,如下图:
2计算两个日期之间的天数,也可以用隐藏函数DATEDIF函数来完成,公式如下:
=DATEDIF(A2,B2,"d")。
3DATEDIF()函数知识点介绍:
这个函数语法是这样的:=DATEDIF(开始日期,结束日期,第三参数),第三参数可以有若干种情况,分别可以返回间隔的天数、月数和年数。
4下面再来看一下如何计算时间。
首先,最简单的是两个时间直接相减即可得到时间差。但是注意,存储结果的单元格要设置成时间格式。
5上面的例子是未超过1天的时间,如果超过1天的时间利用上述的方法直接相减。
6上面的例子更常出现于考勤表的时间计算,由于两个日期可能跨越2天或者更长时间,默认显示结果不正确,需要通过设定单元格格式的方法来显示正常的时间差。如下图设置单元格格式为“[h]:mm:ss”,其中h加上方括号可以将时间的差小时数完全显示,如果不加方括号只能显示扣除天以后的小时之差。
7如果想将时间差的天数和时间都显示出来,可以设置单元格格式为:
d天 h小时mm分ss秒。
EXCEL日期的加减运算可以通过减号“-”实现。
以下举例详细说明怎么计算A1、B1、C1、D1单元格的值的相距天数。首先是用Date函数得到2个具体的日期,然后通过减号“-”计算两者相距天数。
1、输入基本数据。选择Sheet1工作表,选择单元格A1、B1、C1、D1,输入基本数据。
2、计算C1列和D1列代表的日期。点击G1单元格,输入公式=DATE("2019",C1,D1)。
3、计算A1列和B1列代表的日期。点击H1单元格,输入公式=DATE("2019",C1,D1)。
4、计算2个日期相距的天数。点击E1单元格,输入公式=G1-H1。
5、相距的天数为35天,结果如下。
Date函数语法:DATE(year,month,day)
例如:=DATE(C2,A2,B2) 将单元格 C2 中的年、单元格 A2 中的月以及单元格 B2 中的日合并在一起,并将它们放入一个单元格内作为日期。以下示例显示了单元格 D2 中的最终结果。
注意:Excel 可将日期存储为连续序列号,以便能在计算中使用它们。1900 年 1 月 1 日的序列号为 1,2008 年 1 月 1 日的序列号为 39448,这是因为它与 1900 年 1 月 1 日之间相差 39,447 天。需要更改数字格式(设置单元格格式)以显示正确的日期。
1 你的 create table xxx 语句
2 你的 insert into xxx 语句
3 结果是什么样,(并给以简单的算法描述)
4 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
oracle两个时间相减默认的是天数24 为相差的小时数;oracle 两个时间相减默认的是天数2460 为相差的分钟数;oracle 两个时间相减默认的是天数246060 为相差的秒数。Oracle开发的关系数据库产品因性能卓越而闻名,Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统,是世界最好的数据库产品。Oracle是企业IT市场中最大的供应商之一,也是其旗舰产品的简称,即正式称为Oracle数据库的关系数据库管理系统(RDBMS)
数据库中只有日期加时间的数据类型datetime,没有只是时间的数据类型,所以'23:00:00','03:30:00'将被数据库认为是字符类型数据,datediff函数只接受datetime类型的参数其他参数将被隐式转换,所以只能把'23:00:00','03:30:00'加上日期作为datetime类型,才能被datediff正确计算两时间相减
以上就是关于SQL日期字段相减查询显示全部的内容,包括:SQL日期字段相减查询显示、SQL中有两个日期,请问如何相减。、如何在SQL合并日期+时间,然后相减等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)