Mysql 查找一天中两小时之间的所有行
我的问题是: 我有一张这样的桌子:Mysql 查找一天中两小时之间的所有行,mysql,sql,Mysql,Sql,我的问题是: 我有一张这样的桌子: id date name 543 2012-07-30 09:49:08 test 544 2012-07-30 10:54:12 test2 545 2012-08-01 10:54:12 test3 问题是,我想选择今天在9和12之间注册的所有记录。我怎样才能做到这一点 我知道如何像“9点到12点之间的小时数(日期)”,但我想让MySQL考虑当天的日期 谢谢 更新-如果您将日期列编入索引,则这应该更好: SELECT *
id date name
543 2012-07-30 09:49:08 test
544 2012-07-30 10:54:12 test2
545 2012-08-01 10:54:12 test3
问题是,我想选择今天在9和12之间注册的所有记录。我怎样才能做到这一点
我知道如何像“9点到12点之间的小时数(日期)”,但我想让MySQL考虑当天的日期
谢谢 更新-如果您将日期列编入索引,则这应该更好:
SELECT * FROM table WHERE
date>=str_to_date(concat("2012-02-03"," 09"),"%Y-%m-%d %h")
AND
date<=str_to_date(concat("2012-02-03"," 12"),"%Y-%m-%d %h")
从表中选择*,其中
日期>=截止日期(concat(“2012-02-03”,“09”),%Y-%m-%d%h)
及
date=9和HOUR(date)更新-如果您将date列编入索引,则这应该更好:
SELECT * FROM table WHERE
date>=str_to_date(concat("2012-02-03"," 09"),"%Y-%m-%d %h")
AND
date<=str_to_date(concat("2012-02-03"," 12"),"%Y-%m-%d %h")
从表中选择*,其中
日期>=截止日期(concat(“2012-02-03”,“09”),%Y-%m-%d%h)
及
date=9和HOUR(date)如果您有sql 2008,则可以执行以下操作:
select
ID
,cast([Date] as Date) as dt
,cast([Date] as Time) as tm
,name
from table
where cast([Date] as Time) BETWEEN '09:00:00' AND '12:00:00'
如果您有sql 2008,则可以执行以下操作:
select
ID
,cast([Date] as Date) as dt
,cast([Date] as Time) as tm
,name
from table
where cast([Date] as Time) BETWEEN '09:00:00' AND '12:00:00'
如果date列是index,这将为您提供更好的性能
where date_col>=date_add(current_date,interval 9 hour)
date_col<=date_add(current_date,interval 12 hour)
其中date\u col>=date\u add(当前日期,间隔9小时)
date\u col如果date列是index,这将为您提供更好的性能
where date_col>=date_add(current_date,interval 9 hour)
date_col<=date_add(current_date,interval 12 hour)
其中date\u col>=date\u add(当前日期,间隔9小时)
你试过什么?既然你知道今天的日期,你试了什么?假设您知道今天的日期。谢谢,但当我尝试您的请求时,我得到以下错误:函数prc6.HOURS不存在
(prc6是我的数据库)我想他是说HOUR()
-工作得很好!我会考虑你的暗示!谢谢。:)@bendataclear-你说得对。它是固定的;感谢您的注意。我必须指出,由于性能问题,不建议在选定列周围使用函数WHERE DATE(DATE).
。谢谢,但当我尝试您的请求时,我得到以下错误:函数prc6.HOURS不存在(prc6是我的数据库)我想他是指HOUR()
-工作得很好!我会考虑你的暗示!谢谢。:)@bendataclear-你说得对。它是固定的;感谢您的注意。我必须指出,由于性能问题,不建议在选定列周围使用函数WHERE DATE(DATE).
。谢谢您的回答,但我没有SQL 2008:)谢谢您的回答,但我没有SQL 2008:)