如何从日期列在 varchar 数据类型中的日期获取月份。仅供参考,使用雪花工具。例如,如果我想要六月的数据?我怎样才能取?
您可以使用该TO_DATE(…)
函数将VARCHAR
列视为格式化的日期类型,并使用该EXTRACT(…)
函数仅检索日期之外的月份。
如果您的日期字符串以众所周知的方式格式化,TO_DATE
的自动解析(或使用::
运算符的直接转换)就足够了,您可以这样编写查询:
SELECT * FROM table
WHERE
EXTRACT(month, TO_DATE(varcharCol)) = 6 -- June of every year
AND EXTRACT(year, varcharCol::DATE) = 2020; -- June of 2020 alone
或者,如果日期是非标准格式,请使用可用的格式选项来TO_DATE(…)
正确解析它:
-- Dates of custom format, such as: 'June # 02 # 2020'
SELECT
EXTRACT(month, TO_DATE(varcharCol, 'MMMM # DD # YYYY')) AS month
FROM table
WHERE
month = 6;
注意:如果数据中包含一个完整的时间戳值,而不仅仅是一个日期,则您还可以交换所有DATE
和TO_DATE
以上内容。TIMESTAMP
TO_TIMESTAMP
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句