扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
select * from 表
成都网络公司-成都网站建设公司成都创新互联公司十载经验成就非凡,专业从事成都网站建设、网站建设,成都网页设计,成都网页制作,软文发布平台,1元广告等。十载来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:18980820575,我们期待您的来电!
where to_char(TempDate,'hh24:mi') between '00:00' and '11:00'
我在PLSQL里面必须这样写,只写小时会仅限制到最后那天的11点。
写法有很多种,例如下面的:
方法一:select * from dual where time between to_date('2012-06-18 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2012-06-18 23:59:59','yyyy-mm-dd hh24:mi:ss');
方法二:select * from dual where to_char(time,'yyyy-mm-dd')='2012-06-18';
方法三:select * from dual where trunc(time)=to_date('2012-06-18','yyyy-mm-dd');
当然楼主也可以按上面的先转换下日期的显示格式再查询撒,都可以的,呵呵!!!
建表和插入数据
create table table_a( t1 date, t2 date);
insert into table_a values(to_date('20140501','yyyymmdd') ,to_date('20140503','yyyymmdd'));
insert into table_a values(to_date('20140508','yyyymmdd') ,to_date('20140509','yyyymmdd'));
create table table_b(t date,id int)
insert into table_b values(to_date('20140501','yyyymmdd'),1);
insert into table_b values(to_date('20140502','yyyymmdd'),2);
insert into table_b values(to_date('20140503','yyyymmdd'),3);
insert into table_b values(to_date('20140504','yyyymmdd'),4);
insert into table_b values(to_date('20140505','yyyymmdd'),5);
insert into table_b values(to_date('20140506','yyyymmdd'),6);
insert into table_b values(to_date('20140507','yyyymmdd'),7);
insert into table_b values(to_date('20140508','yyyymmdd'),8);
insert into table_b values(to_date('20140509','yyyymmdd'),9);
insert into table_b values(to_date('20140510','yyyymmdd'),10);
insert into table_b values(to_date('20140511','yyyymmdd'),11);
查询语句
select * from table_b where t not in(
select distinct b.t from table_b b,table_a a where b.t between a.t1 and a.t2)
第一种:直接用语句
date1与date2是字符串
SQL.Tet:='select * from table where 字段 between '+Quotedstr(date1)+' and '+Quotedstr(date2);
date1与date2是日期
SQL.Tet:='select * from table where 字段 between '+Quotedstr(DateTimeToStr(date1))+' and '+Quotedstr(DateTimeToStr(date2));
第二种:用参数形式:
SQL.Tet:='select * from table where 字段 between :d1 and :d2';
Parameters.ParamByName('d1').Value:=date1;
Parameters.ParamByName('d2').Value:=date2;
select to_char(sysdate-1.'dd') from dual);
1后边是逗号,
看你的语句是取一个日期,干嘛要用IN呢,IN很影响执行效率,特别是表中数据比较大的时候,我觉得用这个就可以:
select to_char(edit_time,'dd') as newtime from table where newtime=to_char(sysdate-1,'dd')
你查到的是2022-06-21的数据,那么只需要再加一天2021-06-21不就可以了,在时间的地方加一个or,用扩考括起来就可以了。然后在group by和orderby的时候,加一个出院时间就OK了。
不过现在这个时间不能直接用,因为你的出院时间是包括时分秒的,这里你需要截取到日,不然group by和orderby的时候的时候也会按照时分秒去分组排序的。
至于出来以后的显示结果什么样,要看你要的是什么样子,然后再用其他分组调整函数(比如cube等)想办法调整最后的顺序。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流