问:在我的表中有一个字段存储的是datetime格式的日期和时间。我想获得7月1号到7月31号之间晚上10点到早上6点的数据。获得这样的数据的最好方法是什么? 答:这是少数采用单独的日期和时间比较好的情况之一。 select columns from table where datecol between ’2007-07-01’ and ’2007-07-31’ and ( timecol >= ’22:00’ or t……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
问:在我的表中有一个字段存储的是datetime格式的日期和时间。我想获得7月1号到7月31号之间晚上10点到早上6点的数据。获得这样的数据的最好方法是什么?
答:这是少数采用单独的日期和时间比较好的情况之一。
select columns from table where datecol between ’2007-07-01’ and ’2007-07-31’ and ( timecol >= ’22:00’ or timecol <= ’06:00’ ) |
然而对于DATETIME列,有一个小技巧。我们需要“提取”DATETIME值的时间部分。这个查询如下所示:
select columns from table where datetimecol >= ’2007-07-01’ and datetimecol < ’2007-08-01’ and ( extract(hour from datetimecol) >= 22 or extract(hour_minute from datetimecol) <= ’06:00’ ) |
准确的语法是取决于你所使用的数据库系统。注意日期的范围测试是怎么使用一个未限制的间隔的。
相关推荐
-
有效的MySQL备份与恢复
如果您接手了一个MySQL生产系统,但不确定它是否运行了MySQL备份策略,这时需要做哪些保障措施呢?
-
找到Oracle数据库中性能最差的查询语句
“V$SQLAREA”和“ V$SQL”是非常有用的视图,在其中你可以查找发现执行效率最差的需要优化的SQL语句。
-
解读SQL Server数据库存储过程发展历史
SQL Server存储过程可以是Transact-SQL(T-SQL)语句,或者是.NET框架的公共语言运行时(CLR),它是专为方便数据库查询而设计的。
-
避免并解决Oracle变异表错误
在用合并语句来创建一个触发器时遇到变异表出错的问题该如何解决?Oracle数据库专家Dan Clamage为您做出了解答。