[英]selecting date with regexp_extract
我需要從列名中提取年份,它返回 null 值和相同數量的字符。 我只想提取日期,但是有幾列具有相同的字符數。
表中的樣本數據
10020020
1172053041
597246141
3339110821
26590621
192133643
20190203
20180109
20170204
20190904
我試過這個,
select regexp_extract((colname), '([0-9]{8})', 1) from tablename
但是它返回的結果與 null 值具有相同數量的字符。 我只想提取 20170109,20190204 等日期。什么是最好的方法,我 go 錯了什么?
10020020
26590621
20190203
20180109
20170204
20190904
我嘗試使用通配符select regexp_extract((maxvalue), '([0-9]{8})', 1) like '%2019%' from profilingoverviewreport
但它返回 boolean
如果您想匹配恰好有 8 位數字的值,並且這些 8 位數字值對應於日期,那么我建議使用以下模式:
^(20|19)[0-9]{6}$
您更新的 SQL 代碼:
SELECT *
FROM tablename
WHERE colname IREGEXP '^(20|19)[0-9]{6}$';
檢查演示以查看正確識別列中日期的正則表達式模式:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.