首页 > 试题广场 >

请取出 BORROW表中日期(RDATE字段)为当天的所有记

[单选题]
请取出 BORROW表中日期(RDATE字段)为当天的所有记录?(RDATE字段为datetime型,包含日期与时间)。SQL语句实现正确的是:(      )
  • select * from BORROW where datediff(dd,RDATE,getdate())=0
  • select * from BORROW where RDATE=getdate()
  • select * from BORROW where RDATE-getdate()=0
  • select * from BORROW where RDATE > getdate()

定义和用法

DATEDIFF() 函数返回两个日期之间的时间。

语法

DATEDIFF(datepart,startdate,enddate)

startdate 和 enddate 参数是合法的日期表达式。

datepart 参数可以是下列的值:

datepart 缩写
yy, yyyy
季度 qq, q
mm, m
年中的日 dy, y
dd, d
wk, ww
星期 dw, w
小时 hh
分钟 mi, n
ss, s
毫秒 ms
微妙 mcs
纳秒 ns

实例

例子 1

使用如下 SELECT 语句:

SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate

结果:

DiffDate
1

例子 2

使用如下 SELECT 语句:

SELECT DATEDIFF(day,'2008-12-30','2008-12-29') AS DiffDate

结果:

DiffDate
-1
发表于 2019-09-14 11:49:45 回复(8)
DATEDIFF() 函数返回两个日期之间的时间。
发表于 2021-07-14 15:08:39 回复(0)
理解datediff(dd,RDDATE,getdate())==0含义,即返回以日为单位(dd),和当前日期(getdate)相差为0日的RDDATE。
这里用这个函数的意义在于,RDDATE包括日期和时间,这里因为有时间,和getdate不能直接比较,所以用datediff转换为范围。
发表于 2019-11-09 19:39:30 回复(11)
MySQL中DATEDIFF()函数语法为DATEDIFF(date1,date2), 返回两个日期之间的天数
发表于 2020-02-25 11:07:58 回复(0)
getdate()得出的是当前日期+时间(精确到毫秒) RDATE也是datetime型,与getdate无法准确比较 故用datediff(dd, date1, date2)=0,datepart以日为单位,比较rdate和当前的日期,使之相隔0天即为当天。
发表于 2020-08-09 14:42:26 回复(0)
datediff(类型,开始date,结束date),返回开始时间和结束时间的差值,以类型为单位。
发表于 2020-09-14 00:02:42 回复(0)
getdate()返回的是当前日期以及时间,是datetime型,RDATE字段也为datetime型,题目要求返回当天的记录,所以只要日期一样就行,所以加了个dd
发表于 2020-07-06 15:36:52 回复(0)
理解datediff(dd,RDDATE,getdate())==0含义,即返回以日为单位(dd),和当前日期(getdate)相差为0日的RDDATE。
这里用这个函数的意义在于,RDDATE包括日期和时间,这里因为有时间,和getdate不能直接比较,所以用datediff转换为范围。
发表于 2020-06-28 23:51:12 回复(0)
1.得到当下的时间:getdate()
2.函数datediff(datepart, startdate, enddate)表示以某种时间格式datepart(规定了在什么维度上比较差额) 提取 start 和 end之间的日期。datepart可以为:
yy:年,dd:日,qq:季度,mm:月,hh:小时
发表于 2021-03-11 21:08:31 回复(0)
mysql:   select * from student where DateDiff(Date(date),curdate())=0;
发表于 2020-04-15 19:17:18 回复(0)
getdate()得到的是一个准确的时间(含纳秒),不是日期。
编辑于 2020-06-15 17:19:05 回复(0)
datediff(类型,开始date,结束date),返回开始时间和结束时间的差值,以类型为单位。
发表于 2022-01-09 05:01:53 回复(0)
理解datediff(dd,RDDATE,getdate())==0含义,即返回以日为单位(dd表示的是日),和当前日期(getdate)相差为0的RDDATE。这里用这个函数的意义在于,RDDATE包括日期和时间,这里因为有时间,和getdate不能直接比较,所以使用datediff转换为范围。
发表于 2021-11-17 19:59:55 回复(0)
解datediff(dd,RDDATE,getdate())==0含义,即返回以日为单位(dd),和当前日期(getdate)相差为0日的RDDATE。
这里用这个函数的意义在于,RDDATE包括日期和时间,这里因为有时间,和getdate不能直接比较,所以用datediff转换为范
发表于 2021-11-06 20:33:55 回复(0)
==0的含义就是和getdate()这个时间相差位0时0分0秒
发表于 2021-03-30 21:54:51 回复(0)
可以不用getdate和datediff这个两个函数,可以将B选项修改为
...WHERE RDATE = CURRENT_DATE


发表于 2021-01-17 13:26:10 回复(0)
有人分析一下其他选项不对的原因吗?
发表于 2023-03-28 15:07:10 回复(0)
getdate函数得到当前的日期与时间,RDATE也包括日期与时间,
但根据题目要求只需比较日期,故借助datediff函数进行比较
发表于 2023-01-02 21:44:29 回复(0)
datediff(类型,开始date,结束date),返回开始时间和结束时间的差值,以类型为单位
发表于 2022-11-02 00:04:22 回复(0)
这个题貌似是有点问题吧,像
DATEDIFF函数用于返回两个日期的天数,返回date1 - date2的计算结果

SELECT DATEDIFF('2022-04-30','2022-04-29');  
-- 1

SELECT DATEDIFF('2022-04-30','2022-04-30');
-- 0

SELECT DATEDIFF('2022-04-29','2022-04-30');
-- -1
 
SELECT DATEDIFF('2022-04-30','2022-04-30 14:00:00');
-- 0

SELECT DATEDIFF('2022-04-30 13:00:00','2022-04-29 14:00:00');
-- 1

SELECT DATEDIFF('2017-06-25 09:34:21', '2017-06-15');
-- 10
-- 注意:如果一个有时分秒,一个没有,不影响。正常相减。
所以A不是没问题吗
发表于 2022-07-14 19:25:41 回复(0)