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 也是一样,怎么办

参考技术A

是你要的结果么,你的这个外面在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类型日期转化为 年月?的主要内容,如果未能解决你的问题,请参考以下文章

pgsql里边怎样把integer类型转换为date类型?

SQL 字符串类型的时间怎么比较大小

如何将 varchar(2020 年 1 月 1 日)中的日期转换为 DB2 sql 中的日期类型?

jsp 怎么把日期转化成timestamp

js怎么把字符串型(yyyy年mm月dd日)转化为日期型?

sql中如何把具体日期转化为按月排序?