数据库日期时间函数

2022-10-24 17:28:13   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《数据库日期时间函数》,欢迎阅读!
函数,日期,数据库,时间

1 建表

oracle

create table T_person(FIdNumber varchar2(20),Fname varchar2(20),FBirthDay date,FRegDay date,FWeight numberic(10,2));

insert into T_person(FIdNumber,Fname,FBirthDay,FRegDay,FWeight)

values('123456789120','jim',to_date('1989-09-26','yyyy-MM-dd HH 24:MI:SS'),to_date('2011-09-26','yyyy-MM-dd HH 24:MI:SS'),'65.02');

其他数据库:

insert into T_person(FIdNumber,Fname,FBirthDay,FRegDay,FWeight)

values('123456789120','jim','1989-09-26','2011-09-26','65.02');

2 日期,时间,日期时间与时间戳

Date,Time,DateTime.TimeStamp

Oracle:to_date(varchar2,'yyyy-MM-dd HH 24:MI:SS')

to_char(date,'yyyy-MM-dd HH 24:MI:SS')

3 取得当前日期:

Mysql NOW()函数,别名:SYSDATE(),CURRENT_TIMESTAMP

想得到不包含时间部分的当前日期:CURDATE(),别名:CURRENT_DATE;

想得到不包含日期部分的当前日期:CURTIME(),别名:CURRENT_TIME;

SQLServer :GETDATE()

select GETDATE() as 当前日期时间

返回的是时间戳

只得到日期部分:select convert(varchar(50),GETDATE(),101) as 当前日期

只得到时间部分:select convert(varchar(50),GETDATE(),108) as 当前时间

ORACLE:

SYSTIMESTAMP的值得到当前时间戳

select SYSTIMESTAMP from dual;时间戳

select SYSDATE from dual;日期时间

没有取得当前日期,当前时间的函数,可以借助to_char()函数

select to_char(SYSDATE,'yyyy-MM-dd') from dual;

select to_char(SYSDATE,'HH24:MI:SS') from dual;

4 日期的增减:

oracle 可以直接用'+'来进行日期的加法运算,计算单位为天

计算每个人出生日期2小时10分钟后的日期:

select FBirthDay+(2/24+10/60/24) from T_Person;

由于天和月之间不存在固定的换算率,所以无法使用加减运算实现一月为单位的计算

为此oracle提供了以月为单位的日期增减运算ADD_MONTHS()函数

格式为:ADD_MONTHS(date,number)

SQL:计算每个人的出生日期两个月零10天后以及3个月零10个小时前的日期时间

select FBirthDay,ADD_MONTH(FBrithDay,2)+10 as bfd,ADD_MONTH(FBrithDay,-3)-(10/24) as adf from T_Person;

5 计算日期差额

计算两个日期的差额

ORACLE可以在两个日期类型的数据之间使用'-'运算符,其计算结果为两个日期之间的天差数,结果是包含小数的

可以四舍五入,ROUND(SYSDATE-FBrithDay)

6 计算一个日期是星期几:

详情参考to_char(date,format)的format

DAY,日期属于周几,名字的形式表示

7 取得日期的指定部分:

COALESCE()函数

COALESCE()函数简化版NVL(ORACLE)

本文来源:https://www.wddqxz.cn/276cdd2b7375a417866f8f64.html

相关推荐