Java教程

八种数据库时间函数的简单总结

本文主要是介绍八种数据库时间函数的简单总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

八种数据库时间函数的简单总结

PG,SQLSERVER,Oracle,MySQL,达梦,神通,人大金仓,瀚高.

简单总结一下

1. PG,神通,人大金仓,瀚高 基本上一样:
都可以使用now()获取时间 age获取时间间隔(神通是天数,其他的年月数),extract获取时间数据的部分内容.
使用 + 或者是 -  interval '3 days' 表示三天后或者是三天前或者是其他时间单位的时间数值.
2. Oracle数据库和达梦数据库基本上一样:
使用 select sysdate from dual 可以获取当前时间
使用 也可以使用 + 或者是 - interval '数字' 单位(单数形式) from dual 来获取

注意1: 这两类存在较大的不同是 PG系可以使用复数形式,并且需要放到hard quote 里面 Oracle 只需要将数字放到单引号. 日期类型必须单数. 
注意2: oracle必须有from 达梦可以有 from dual 也可以没有. 

3. SQLSERVER 数据库自称一派, 使用 select getdate()的方式获取日期. dateadd和datediff函数进行时间计算. 
4. Mysql数据库比较偏向于PG数据库.  但是需要注意的是 他有 date_add 函数 还有 dayofyear dayofmonth等的函数.

1. PG数据库

获取当前时间 
now()
select now() ;
其他函数
# 时间戳
 select current_timestamp;
# 日期 
 select current_date;
# 时间
 select current_time;

1. PG数据库

# 时间计算
select now() + interval '2 years'; 
select now() - interval '2Y'; 
# 部分简写以及含义
Y	Years
M	Months (in the date part)
W	Weeks
D	Days
H	Hours
M	Minutes (in the time part)
S	Seconds
# 时间间隔
age
select age(timestamp '2013-11-27');   
# 时间截取
extract
select extract(doy from now());
# 注意是 day of year 的简写
select extract(week from now());
select extract(month from now());

2. SQLSERVER数据库

# 获取当前时间
select getdate()
# 时间计算
dateadd(datepart,number,date)
select dateadd(year,-2,getdate())
# 时间差值计算
datediff( date-part, startdate, enddate )
# 比如计算有从出生有多少天
select datediff( day,  '2013-11-27',getdate() )
# 获取部分时间内容
# datepart
SELECT DATEPART(Second, getdate()) as '秒数'

3. Oracle数据库

# 注意 oracle的时间函数里面 没有括号 真TM乱啊
# 注意 Oracle 必须从虚标里面查. NND真特殊.
# 获取当前时间
select sysdate from dual
# 设置时间格式
select to_char(sysdate,'yyyy-mm-dd hh24:mi') from dual;
# 也可以仅获取部分内容
select to_char(sysdate,'hh24') from dual;
# 时间计算
# 获取七天后的日期
# 注意 这一点 oracle与PG的计算时间前后的函数是一样的. 
select sysdate,sysdate +  interval '7' DAY from dual;

4. 达梦数据库

# 获取当前时间
SELECT sysdate()
# 注意达梦为了实现oracle兼容也可以使用 oracle的语法进行处理
select sysdate from dual
# 而且他还可以带括号
select sysdate() from dual
# 他的可以完全模仿Oracle来处理
# 设置时间格式
select to_char(sysdate,'yyyy-mm-dd hh24:mi') from dual;
# 也可以仅获取部分内容
select to_char(sysdate,'hh24') from dual;
# 时间计算
# 获取七天后的日期
# 注意 这一点 oracle与PG的计算时间前后的函数是一样的. 
select sysdate,sysdate +  interval '7' DAY from dual;
# 其他的先不管了...

5. MySQL数据库

# 获取当前时间
select now();
# 还可以用如下的函数
 current_timestamp(),current_timestamp,localtime(),localtime
# 跟PG一样 用 now获取 
# 还有另外一个函数 sysdate 但是存在区别
#sysdate() 日期时间函数跟 now() 类似,不同之处在于:
#now() 在执行开始时值就得到了,sysdate() 在函数执行时动态得到值。
select now(), sleep(1), now();
select sysdate(), sleep(1), sysdate();
# 注意秒数 是不一样的.
# 只获取当前日期
select curdate();
# 只获取当前时间
select curtime();
# 获取时间的部分内容
select extract(month from sysdate())
# 这个函数跟PG的是一样的.

5. MySQL数据库

# 获取时间是本周/本月/本年的天数
select dayofweek(sysdate());  
select dayofmonth(sysdate());  
select dayofyear(sysdate());  
# MySQL 返回星期和月份名称函数:dayname(), monthname() 
select dayname(sysdate())
select monthname(sysdate())
# 注意西方世界 Sunday 是First day of The week.
# MySQL其他的时间计算函数
date_add
select date_add(sysdate(),interval -3 year)
# 注意这里面没有复数形式.
# 计算时间差值
select datediff('2013-11-27',sysdate())
# 这个出来是负数.

6. 神通数据库

# 怀疑神通数据库的函数和内核比较偏向于PG.
# 获取当前时间
select now();
# 验证了一下果然和PG很相似基本通用.
# 时间计算
select now() + interval '2 years'; 
select now() - interval '2Y'; 
# 时间间隔
age
select age(timestamp '2013-11-27');   
# 时间截取
extract
select extract(doy from now());
# 注意是 day of year 的简写
select extract(week from now());
select extract(month from now());

7. 人大金仓数据库

#发现跟神通数据库一样 时间函数和PG也是相同的
select now();
# 验证了一下果然和PG很相似基本通用.
# 时间计算
select now() + interval '2 years'; 
select now() - interval '2Y'; 
# 部分简写以及含义
# 时间间隔
age
select age(timestamp '2013-11-27');   
# 时间截取
extract
select extract(doy from now());
# 注意是 day of year 的简写
select extract(week from now());
select extract(month from now());

8.瀚高数据库

# 与PG数据库基本一致..
这篇关于八种数据库时间函数的简单总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!