三個基礎(chǔ)的時間表示函數(shù) CURRENT_DATE/CURRENT_TIME/NOW()
SELECT CURRENT_DATE ;
返回當(dāng)前日期以 年-月-日(yyyy-MM-dd)的形式:
2019-01-10
SELECT CURRENT_TIME;
返回當(dāng)日時間以 時:分:秒+時區(qū)(HH:mm:ss )的形式:
17:49:11.585308+08
SELECT NOW();
返回當(dāng)前時間 以 年-月-日 時:分:秒(yyyy-MM-dd HH:mm:ss)的形式:
2019-01-10 17:50:45.354983+0
然后幾個計算公式
第一種是直接對日期進行操作,
SELECT (CURRENT_DATE - '1993-01-01')/365 age; SELECT (CURRENT_DATE - '1993-01-01 16:00:00')/365 age;
輸出 26 26 兩種時間格式結(jié)果一致
第二種方式
SELECT age(CURRENT_DATE, '1993-01-01') age; SELECT age(CURRENT_DATE, '1993-01-01 16:00:00') age;
輸出
26 years 9 days
26 years 8 days 08:00:00
age()函數(shù)會輸出精確的年齡字符串,根據(jù)傳入的時間不同,輸出的時間格式相對應(yīng)
如果使用now()函數(shù)計算,需要注意age()函數(shù)能輸出正確結(jié)果,直接計算單位為day
SELECT age(CURRENT_DATE, '1993-01-01') age;
SELECT age(CURRENT_DATE, '1993-01-01 16:00:00') age;
select (now() - '1993-01-01')/365 age;
select (now() - '1993-01-01 16:00:00')/365 age
分別輸出
26 years 9 days 19:20:46.395713
26 years 9 days 03:20:46.421816
26 days 01:02:21.497111
26 days 00:59:43.688958
補充:PostgreSQL獲取當(dāng)前時間的四種方式
PostgreSQL中有四種獲取當(dāng)前時間的方式。
1.now()

返回值:當(dāng)前年月日、時分秒,且秒保留6位小數(shù)。
2.current_timestamp

返回值:當(dāng)前年月日、時分秒,且秒保留6位小數(shù)。(同上)
申明:now和current_timestamp幾乎沒區(qū)別,返回值相同,建議用now。
3.current_time

返回值:時分秒,秒最高精確到6位
4.current_date

返回值:年月日
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- Mysql出生日期轉(zhuǎn)換為年齡并分組統(tǒng)計人數(shù)的方法示例
- Mysql中通過生日計算年齡的多種方法
- sql通過日期判斷年齡函數(shù)的示例代碼