三個(gè)基礎(chǔ)的時(shí)間表示函數(shù) CURRENT_DATE/CURRENT_TIME/NOW()
SELECT CURRENT_DATE ;
返回當(dāng)前日期以 年-月-日(yyyy-MM-dd)的形式:
2019-01-10
SELECT CURRENT_TIME;
返回當(dāng)日時(shí)間以 時(shí):分:秒+時(shí)區(qū)(HH:mm:ss )的形式:
17:49:11.585308+08
SELECT NOW();
返回當(dāng)前時(shí)間 以 年-月-日 時(shí):分:秒(yyyy-MM-dd HH:mm:ss)的形式:
2019-01-10 17:50:45.354983+0
然后幾個(gè)計(jì)算公式
第一種是直接對日期進(jìn)行操作,
SELECT (CURRENT_DATE - '1993-01-01')/365 age; SELECT (CURRENT_DATE - '1993-01-01 16:00:00')/365 age;
輸出 26 26 兩種時(shí)間格式結(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ù)傳入的時(shí)間不同,輸出的時(shí)間格式相對應(yīng)
如果使用now()函數(shù)計(jì)算,需要注意age()函數(shù)能輸出正確結(jié)果,直接計(jì)算單位為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
補(bǔ)充:PostgreSQL獲取當(dāng)前時(shí)間的四種方式
PostgreSQL中有四種獲取當(dāng)前時(shí)間的方式。
1.now()
返回值:當(dāng)前年月日、時(shí)分秒,且秒保留6位小數(shù)。
2.current_timestamp
返回值:當(dāng)前年月日、時(shí)分秒,且秒保留6位小數(shù)。(同上)
申明:now和current_timestamp幾乎沒區(qū)別,返回值相同,建議用now。
3.current_time
返回值:時(shí)分秒,秒最高精確到6位
4.current_date
返回值:年月日
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- Mysql出生日期轉(zhuǎn)換為年齡并分組統(tǒng)計(jì)人數(shù)的方法示例
- Mysql中通過生日計(jì)算年齡的多種方法
- sql通過日期判斷年齡函數(shù)的示例代碼