三個基礎的時間表示函數 CURRENT_DATE/CURRENT_TIME/NOW()
SELECT CURRENT_DATE ;
返回當前日期以 年-月-日(yyyy-MM-dd)的形式:
2019-01-10
SELECT CURRENT_TIME;
返回當日時間以 時:分:秒+時區(HH:mm:ss )的形式:
17:49:11.585308+08
SELECT NOW();
返回當前時間 以 年-月-日 時:分:秒(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 兩種時間格式結果一致
第二種方式
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()函數會輸出精確的年齡字符串,根據傳入的時間不同,輸出的時間格式相對應
如果使用now()函數計算,需要注意age()函數能輸出正確結果,直接計算單位為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獲取當前時間的四種方式
PostgreSQL中有四種獲取當前時間的方式。
1.now()

返回值:當前年月日、時分秒,且秒保留6位小數。
2.current_timestamp

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

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

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