Pgsql 怎么把varchar类型日期转化为 年月?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pgsql 怎么把varchar类型日期转化为 年月?相关的知识,希望对你有一定的参考价值。
select TO_DATE('2018-01-01 12:01:01', 'yyyy-mm-dd')
结果为2018-01-01
但是我只要201801 或者2018-01 ,,把format改为yyyy-mm 也是一样,怎么办
是你要的结果么,你的这个外面在to_char 一下,格式上写yyyymm试试看
本回答被提问者和网友采纳 参考技术B 觉电池不是很耐用,我朋友和我手机一样,说刚回如何将 varchar(2020 年 1 月 1 日)中的日期转换为 DB2 sql 中的日期类型?
【中文标题】如何将 varchar(2020 年 1 月 1 日)中的日期转换为 DB2 sql 中的日期类型?【英文标题】:How do i convert a date in varchar (1-Jan-2020) to date type in DB2 sql? 【发布时间】:2021-01-01 04:24:30 【问题描述】:我的 db2 表中有一个日期列如下。
4-Jan-2020
7-Sep-2020
7-Dec-2020
我想把它们转换成
2020-01-04
2020-09-07
2020-12-07
分别。我如何实现这一目标? 谢谢。
【问题讨论】:
您的列数据类型是日期吗? 不,它是 varchar 【参考方案1】:在最新版本的 DB2 上,使用TO_DATE
:
SELECT DATE(TO_DATE(date_col, 'DD-MON-YYYY'))
FROM yourTable;
数据:
WITH yourTable AS (
SELECT '4-Jan-2020' AS date_col UNION ALL
SELECT '7-Sep-2020' UNION ALL
SELECT '7-Dec-2020'
)
【讨论】:
DATE()
相当多余。
@GordonLinoff 有趣的是,如果你在这个网站上寻找类似的问题,许多被接受的答案似乎都包含了对TO_DATE
的调用,而另一个转换为DATE()
。不知道他们为什么这样做。
令人困惑的是,TO_DATE
在 Db2 中不返回 DATE
,而是返回 TIMESTAMP
,因此将结果转换为日期通常是个好主意。这种奇怪的原因是(我相信)TO_DATE 作为其 Oracle 兼容性的一部分进入 Db2,并且 Oracle 中的 TO_DATE
返回一个日期+时间数据类型(Oracle 非常混乱地命名为 DATE docs.oracle.com/cd/B28359_01/server.111/b28318/…)
我的专栏中有一些垃圾字符串,这是错误的。我如何将它们转换为 NULL 并保持最新状态?
使用:CASE WHEN REGEXP_LIKE(date_col, '[0-9]1,2-[A-Z]3-[0-9]4') THEN DATE(TO_DATE(date_col, 'DD-MON-YYYY')) END
以上是关于Pgsql 怎么把varchar类型日期转化为 年月?的主要内容,如果未能解决你的问题,请参考以下文章