两种方法
第一种:
select a
from A a
where adate between to_date('2009-04-09 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2009-04-09 03:00:00','yyyy-mm-dd hh24:mi:ss')
第二种:
select a
from A a
where adate>to_date('2009-04-09 00:00:00','yyyy-mm-dd hh24:mi:ss') and adate<to_date('2009-04-09 03:00:00','yyyy-mm-dd hh24:mi:ss')
其中adate是A表中的时间字段
可以先通过to_char将时间转换为字符串,之后通过to_date方式统一时间样式,这样就能灵活的获取时间的格式了。
sql:SELECT to_date(to_char(sysdate,'yyyy-mm-dd')||'23:59:59','yyyy-mm-dd hh24:mi:ss') FROM DUAL;
解释:以上语句就是获取到当前的最后时间点,在跳动一秒就会进入下一天。
备注:时间比较是距离1970年越远的那么时间就越大。
默认情况下,SQL Server 根据截止年份 2049 解释两位数字的年份。
即,两位数字的年份 49 被解释为 2049,而两位数字的年份 50 被解释为 1950。许多客户端应用程序(例如那些基于 OLE 自动化对象的客户端应用程序)都使用 2030 作为截止年份。SQL Server 提供一个配置选项("两位数字的截止年份"),借以更改 SQL Server 所使用的截止年份并对日期进行一致性处理。然而最安全的办法是指定四位数字年份。
当从 smalldatetime 转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。当从 datetime 或 smalldatetime 值进行转换时,可以通过使用适当的 char 或 varchar 数据类型长度来截断不需要的日期部分。
日期时间类型:time:
格式:hh:mm:ss[nnnnnnn]
范围:00:00:000000000 到23:59:599999999
精确度:100 纳秒
存储大小(以字节为单位):3-5
用户定义的秒的小数精度:有
时区偏移量:无
date:
格式:YYYY-MM-DD
范围:0001-01-01 到 9999-12-31
精确度:1天
存储大小(以字节为单位):3
用户定义的秒的小数精度:无
时区偏移量:无
smalldatetime:
格式:YYYY-MM-DD hh:mm:ss
范围:1900-01-01 到 2079-06-06
精确度:1分钟
存储大小(以字节为单位):4
用户定义的秒的小数精度:无
时区偏移量:无
datetime:
格式:YYYY-MM-DD hh:mm:ss[nnn]
范围:1753-01-01 到 9999-12-31
精确度:000333秒
存储大小(以字节为单位):8
用户定义的秒的小数精度:无
时区偏移量:无
datetime2:
格式:YYYY-MM-DD hh:mm:ss[nnnnnnn]
范围:0001-01-01 00:00:000000000 到9999-12-31 23:59:599999999
精确度:100钠秒
存储大小(以字节为单位):6 到 8
用户定义的秒的小数精度:有
时区偏移量:无
datetimeoffset:
格式:YYYY-MM-DD hh:mm:ss[nnnnnnn] [+|-]hh:mm
范围:0001-01-01 00:00:000000000 到9999-12-31 23:59:599999999(以UTC 时间表示)
精确度:100钠秒
存储大小(以字节为单位):8 到10
用户定义的秒的小数精度:有
时区偏移量:有
str = " select AA,BB,CC from DATA01 where ID='00123'
and to_char(LOCATETIME,'yyyy-mm-dd hh24:mi:ss')>=' "+StartTime+" '
and to_char(LOCATETIME,'yyyy-mm-dd hh24:mi:ss')<=' "+EndTime " ' ";
字符类型的值要用 单引号 括起来
解决办法1:order
by
'时间字段'
asc/desc
为null值的默认排在前面
解决办法2:isnull('时间字段','1900-1-1')
order
by
'时间字段'
asc/desc
(用isnull函数判断下,如果为null则指定一个较小的时间。如上面的'1900-1-1')
方法一:通过函数to_char实现时间格式的转换
SQL> select sysdate from dual;
SYSDATE
------------
17-JUN-15
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDHH24:MI:SS'
--------------------------------------
2015-06-17 14:08:21
方法二:更改会话参数
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
方法二:更改参数文件
可以在 initora 中加上一行
nls_date_format='yyyy-mm-dd hh24:mi:ss'
或者
alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss’ scope=spfile;
以上就是关于数据库关于时间查询全部的内容,包括:数据库关于时间查询、oracle sql查询语句 时间格式、从数据库中查询时间类型的数据并格式化成我想要的格式怎么写sql等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)