[英]Converting a string to date in SQL
我正在處理一個表,其中有兩個名為“出生”和“死亡”的列,日期為字符串(特定字符會有所不同)。
我想通過使用這兩列來計算年齡。 如果缺少任何一個值,即如果缺少出生或缺少死亡,則它應該返回“未知”(順便說一下,我正在使用的表中的缺失值被指定為None )
當我嘗試將它們轉換為日期時,要么他們給我一個錯誤,要么他們給出了錯誤的年齡。
例如,假設這些分別是出生日期和死亡日期:
出生:0133-01-30T00:53:28+00:53
死亡:0193-07-01T00:53:28+00:53
我使用了以下命令:
CAST(death as date) - CAST(birth as date)
但這是回歸年齡,例如2210或只是一些荒謬的年齡
順便說一下,我在 JUPYTER 筆記本中使用 POSTGRESQL 執行此操作
您可以使用 postgresql age
函數來計算年齡。
例子:
SELECT coalesce(age('0193-07-01T00:53:28+00:53'::timestamp, '0133-01-30T00:53:28+00:53'::timestamp)::text, 'Unknown');
age
------------------------
60 years 5 mons 2 days
(1 row)
獲得年份:
SELECT coalesce(EXTRACT(years FROM age('0193-07-01T00:53:28+00:53'::timestamp, '0133-01-30T00:53:28+00:53'::timestamp))::text, 'Unknown');
extract
---------
60
(1 row)
SELECT coalesce(EXTRACT(years FROM age('0193-07-01T00:53:28+00:53'::timestamp, null))::text, 'Unknown');
coalesce
----------
Unknown
(1 row)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.