昨天遇到一個floor向下取整的問題,現(xiàn)在將它記錄下來。
首先floor是需要一個int或者dp。那么我們?nèi)掌诩訙p轉(zhuǎn)換,timestamp 轉(zhuǎn)data,是需要先將其轉(zhuǎn)成char,再由char轉(zhuǎn)date,再相減,得出一個符合floor函數(shù)要求的值。
代碼如下:
FLOOR((to_date(to_char(current_timestamp, 'yyyy-MM-dd hh:mi:ss'), 'yyyy-mm-dd')
- to_date(to_char(ca.birthday, 'yyyy-MM-dd hh:mi:ss'), 'yyyy-mm-dd')) / 365) as age
同樣的,在java里面要想得到timestamp的當(dāng)前時間,也是用util的date轉(zhuǎn)string再轉(zhuǎn)timestamp
補充:PostgreSQL的日期運算計算函數(shù)使用
一:各個數(shù)據(jù)中的連接符
SqlServer的連接符:+(加號)
Sqlite的連接符:.(點)
PostgreSQL的連接符:||(或)
二:
今天在PostgreSQL計算日期的時候,翻了一些資料,很少,就記錄下來吧~!
其中使用到的函數(shù)及變量
to_char()、Date()、now()、current_date
計算兩個日期的差
current_date為今天的日期,為:2015-06-03
Date('2015-06-05')-current_date=2
select to_char(current_date,'yyyy')||'-'||to_char(birthday,'mm-dd'),Date(to_char(current_date,'yyyy')||'-'||to_char(birthday,'mm-dd'))-current_date
from tablename where delflag=0 and status=0
and Date(to_char(current_date,'yyyy')||'-'||to_char(birthday,'mm-dd'))-current_date>=0
and Date(to_char(current_date,'yyyy')||'-'||to_char(birthday,'mm-dd'))-current_date=7 order by birthday desc
三:
select now() + interval '1 days';
select now() + interval '1 month';
select now() + interval '1 years';
四:
SqlServer中進(jìn)行日期計算時,用到函數(shù)
CONVERT(),DATEPART(),getDate()
select CONVERT(varchar(10),CONVERT(varchar(4),DATEPART(year,getDate()))+'-'+ CONVERT(varchar(2),DATEPART(month,birthday))+'-'+CONVERT(varchar(2),DATEPART(day,birthday)),120),datediff(day,CONVERT(varchar(10),getdate(),120),CONVERT(varchar(10),CONVERT(varchar(4),DATEPART(year,getDate()))+'-'+ CONVERT(varchar(2),DATEPART(month,birthday))+'-'+CONVERT(varchar(2),DATEPART(day,birthday)),120))
from tablename where delflag=0 and status=0
and datediff(day,CONVERT(varchar(10),getdate(),120),CONVERT(varchar(10),CONVERT(varchar(4),DATEPART(year,getDate()))+'-'+ CONVERT(varchar(2),DATEPART(month,birthday))+'-'+CONVERT(varchar(2),DATEPART(day,birthday)),120))=7
and datediff(day,CONVERT(varchar(10),getdate(),120),CONVERT(varchar(10),CONVERT(varchar(4),DATEPART(year,getDate()))+'-'+ CONVERT(varchar(2),DATEPART(month,birthday))+'-'+CONVERT(varchar(2),DATEPART(day,birthday)),120))>=0 order by birthday desc
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- postgreSQL 非count方法算記錄數(shù)操作
- 詳解PostgreSql數(shù)據(jù)庫對象信息及應(yīng)用
- postgresql的now()與Oracle的sysdate區(qū)別說明
- Postgresql 通過出生日期獲取年齡的操作
- postgresql 獲取兩個時間類型小時差值案例
- postgresql通過索引優(yōu)化查詢速度操作