拆分日期,然后将其分成三列



>我有一列这种格式的日期 2/21/2020 和 11/2/2020

我的意思是,如果是第 2 个月,如果是 11 两位数,它将是一个数字

我需要从上面的例子中得到的结果应该是20200221和20201102

所以我决定将日期拆分并将它们分成三列,就像 年份:2020 月份:02 天:21

然后我会将它们结合起来

year || month || day 

现在我知道如何拆分年份

select
regexp_substr(date1, '[^/]+$', 1, 1) as year
from (select '2/11/2020' as date1 from dual) 

但是如果我需要月份或日期,我应该在代码中更改什么

此外,如果月份包含一个数字,则应在月份数字旁边添加 0,例如 02。 我是否在条件时使用案例?

有没有更简单的方法来解决这个问题

试试这个希望你喜欢它。

declare @TargetDate datetime='2/21/2020'
SELECT REPLACE(CONVERT(varchar,(SELECT @TargetDate),23), '-', '') as Date;

如果您的列是日期数据类型,则

To_char(your_date_column, 'yyyymmdd')

如果您的列是 varchar 数据类型,则

To_char(to_date(your_date_column_in_string,'mm/dd/yyyy'), 'yyyymmdd')

不要担心一天或一个月中的一位或两位数字,因为oracle足够聪明,可以识别它。

查看此数据库<>小提琴演示

最新更新