SQL 查询当前日期和时间在字段开始和结束之间的 select 行
SQL query to select row where current date and time is between fields start and end
我有一个 SQL table 包含日期和时间的字段,其中列 start
和 end
作为日期时间。
我想要的是一个查询,它将 select 当前日期和时间在 start
和 end
字段值之间的行加上类型为 WE
.
示例:
如果当前日期和时间是 2022-05-18 15:30:00,结果应显示第 39 行。
到目前为止,这是我想出的代码,但它 returns 结果为零:
select * from `examdates` where (NOW() between `start` and `end`) and `type`='WE'
我也尝试了一些我在这个论坛上找到的答案,比如
select * from `examdates` where NOW() >= `start` and NOW() <=`end` and `type`='WE'
但结果仍然是
谢谢!
测试一下:
SELECT *
FROM `examdates`
WHERE CONVERT_TZ(NOW(), @@time_zone, '+00:00') BETWEEN `start` AND `end`
and `type`='WE'
该函数从会话变量中检索服务器时区信息并将服务器本地日期时间转换为 GMT 时区。如果 table 中的值是另一个时间的值,则相应地调整第三个函数参数。
见https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=b054129c8210336d70b6f0a4ecc50b5d
我有一个 SQL table 包含日期和时间的字段,其中列 start
和 end
作为日期时间。
我想要的是一个查询,它将 select 当前日期和时间在 start
和 end
字段值之间的行加上类型为 WE
.
示例:
如果当前日期和时间是 2022-05-18 15:30:00,结果应显示第 39 行。
到目前为止,这是我想出的代码,但它 returns 结果为零:
select * from `examdates` where (NOW() between `start` and `end`) and `type`='WE'
我也尝试了一些我在这个论坛上找到的答案,比如
select * from `examdates` where NOW() >= `start` and NOW() <=`end` and `type`='WE'
但结果仍然是
谢谢!
测试一下:
SELECT *
FROM `examdates`
WHERE CONVERT_TZ(NOW(), @@time_zone, '+00:00') BETWEEN `start` AND `end`
and `type`='WE'
该函数从会话变量中检索服务器时区信息并将服务器本地日期时间转换为 GMT 时区。如果 table 中的值是另一个时间的值,则相应地调整第三个函数参数。
见https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=b054129c8210336d70b6f0a4ecc50b5d