簡體   English   中英

在 SQL 中將字符串轉換為日期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM