八种数据库时间函数的简单总结
作者:互联网
八种数据库时间函数的简单总结
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数据库基本一致..
标签:sysdate,函数,数据库,八种,时间,PG,now,select 来源: https://www.cnblogs.com/jinanxiaolaohu/p/16099801.html