>我有一列这种格式的日期 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足够聪明,可以识别它。
查看此数据库<>小提琴演示