添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

我的表某个字段是Datetime型 以" YYYY-MM-DD 00:00:00" 存放

A 2009-01-22 21:22:22
B 2009-01-22 19:21:11
C 2009-01-22 23:10:22

时间范围查找

现在想从table1查找’2021-01-12’ 到 ‘2021-01-25’ 的数据,要求包含12日全天和26日全天的数据,

select id, gmt_create from table1 where gmt_create between '2021-01-12' and '2021-01-25';

查出来的数据包含12日全天到25日全天的数据,但没有25的任何数据。
是因为:
SQL中 between and是包括边界值的,not between不包括边界值,不过如果使用between and 限定日期需要注意,between里面的范围日期格式为 ‘2021-01-12’ ,sql 默认会在后面加上’00:00:00’ , 最后的格式为 ‘2021-01-12 00:00:00’, 所以between ‘2021-01-12’ and ‘2021-01-26’, 转化为 ‘2021-01-12 00:00:00’ and ‘2021-01-25 00:00:00’ ,即gmt_create > ‘2021-01-12 00:00:00’ and gmt_create < ‘2021-01-25 00:00:00’ ,是不包含25日全天的时间的
所有如果想从table1查找’2021-01-12’ 到 ‘2021-01-26’ 的数据,要求包含12日全天和25日全天的数据,就要写成between ‘2021-01-12’ and ‘2021-01-26’, 这是从’2021-01-12 00:00:00’ 查到’2021-01-26 00:00:00’,就包含了25日全天的数据。

以下sql等价

select id, gmt_create from table1 where gmt_create > '2021-01-12' and gmt_create < '2021-01-26';
select id, gmt_create from table1 where gmt_create > '2021-01-12 00:00:00' and gmt_create < '2021-01-26 00:00:00';
#上面的两中写法不会包含'2021-01-22 00:00:00'这一刻的数据,如果想包含可以这么写:
select id, gmt_create from table1 where gmt_create > '2021-01-12 00:00:00' and gmt_create < '2021-01-26 00:00:00' or gmt_create = '2021-01-12 00:00:00';
##---------------------------------------------------------------------------##
select id, gmt_create from table1 where gmt_create between '2021-01-12' and '2021-01-26';
select id, gmt_create from table1 where gmt_create between '2021-01-12 00:00:00' and '2021-01-26 00:00:00';
#上面的between写法会包含'2021-01-26 00:00:00'这一刻的数据,

查某一天的数据

select id, gmt_create from table1 where gmt_create between '2021-01-12' and '2021-01-12';

只能查出2021-01-12 00:00:00 这一刻的数据

select id, gmt_create from table1 where gmt_create between '2021-01-12 00:00:00' and '2021-01-12 23:59:59';

或者写成这样更精确

select id, gmt_create from crowd_analysis_cache where gmt_create > '2021-01-12 00:00:00' and gmt_create < '2021-01-13 00:00:00' or gmt_create = '2021-01-12 00:00:00';
                    我的表某个字段是Datetime型 以" YYYY-MM-DD 00:00:00" 存放如A 2009-01-22 21:22:22B 2009-01-22 19:21:11C 2009-01-22 23:10:22时间范围查找现在想从table1查找’2021-01-12’ 到 ‘2021-01-25’  的数据,要求包含12日全天和26日全天的数据,现在用select id, gmt_create from table1 where gmt_create between '2021-01
				
在写时间条件 ,比如 把2014/3/1 到2014/3/31这个时间段做为条件 的话,很多人都会写成这样 select date from table where date between '2014/3/1' and '2014/3/31' 其实这样查询出来的结果 是从2014/3/1 00:00:00 到 2014/3/31 00:00:00 那么 问题来了,要是其中正好...
1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如:向日期加上2天 select dateadd(day,2,’2004-10-15′) –返回:2004-10-17 00:00:00.000 例如:查询目前时间最近三天的内容降序排列 select * from table where time between dateadd(day,-3,getdate()) and getdate() order by c_Id desc 3. datediff 返回跨两个指定日期的日期和时间边界数。 s
SELECT * FROM TEMP_TABLE WHERE TARGET_DATE BETWEEN to_date('2020-01-01', 'yyyy-mm-dd') AND to_date('2020-02-01', 'yyyy-mm-dd') 在进行时间比较的时候 ORACLE 会自动将输...
日期函数months_between的用法: MONTHS_BETWEEN (date1, date2) 用于计算date1和date2之间有几个月。 如果date1在日历中比date2晚,那么MONTHS_BETWEEN()就返回一个正数。 如果date1在日历中比date2早,那么MONTHS_BETWEEN()就返回一个负数。 如果date1和date2日期一样,那么MONTHS_BETWEEN()就返回一个0。 SQL> select months_between(to_date(
最小日期: [2007-01-06]      最大日期: [2007-01-06] 使用的 sql: SELECT ID, Name, RegisterDateFROM CustomerWHERE (RegisterDate BETWEEN ‘2007-01-06’ AND ‘2007-01-06’) 結果是傳回1筆:丁丁, 符合我的預期 但是 如果丁丁的
Sql Server 中一个非常强大的日期格式化函数: 获得当前系统时间,GETDATE(): 2008年01月08日 星期二 14:59 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2008 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/08 Select CONVERT(varchar(100), GETDATE(), 2): 08.05.16 Select CONVERT(varchar(100), GETDATE(), 3): 16/05/08 Select C
1.首先emp表格中hiredate的数据类型是datetime类型,当你使用between查找日期范围的时候,会将 左区间‘1980-12-17’转化为‘1980-12-17 00:00:00’, 右区间‘1981-02-22’转化为‘1981-02-22 00:00:00’。 而emp表中实际是‘1981-02-22 01:00:00’,
要查询一个日期时间范围内的数据,可以使用 SQL 中的 `BETWEEN` 运算符。 例如,要查询 2021 年 1 月 1 日到 2021 年 1 月 31 日之间的订单数据,可以这样写: SELECT * FROM orders WHERE order_date BETWEEN '2021-01-01' AND '2021-01-31' 其中,`order_date` 是订单的日期时间字段,`BETWEEN` 运算符后面跟着的是两个日期时间值,表示查询的起始时间和结束时间。注意,日期时间值需要使用正确的格式,比如 `'YYYY-MM-DD'` 或者 `'YYYY-MM-DD HH:MM:SS'`。