将日期拆分为三列

e3bfsja2  于 2021-07-29  发布在  Java
关注(0)|答案(2)|浏览(508)

我有一个日期栏,格式是2020年2月21日和2020年11月2日
我的意思是,如果它是第二个月,那么它将是一位数,如果它是11,那么它将是两位数
我需要从上面的例子得到的结果应该是20200221和20201102
所以我决定把日期分成三列year:2020 month:02 day:21
那我就把它们合起来

year || month || day

现在我知道如何分配年份了

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

但是如果我需要一个月或一天,我应该在代码中更改什么
此外,如果月份包含一个数字,则应在月份号旁边添加0,如02。当条件为时是否使用case?
有没有更简单的方法来解决这个问题

qlfbtfca

qlfbtfca1#

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

To_char(your_date_column, 'yyyymmdd')

如果列是varchar数据类型,那么

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

不要担心一天或一个月的一个或两个数字,因为甲骨文足够聪明,可以识别它。
查看此db<>小提琴演示

km0tfn4u

km0tfn4u2#

试试这个,希望你喜欢。

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

相关问题