簡體   English   中英

使用 regexp_extract 選擇日期

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

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