To_date 在 Year 通配符前返回 2 个零
Posted
技术标签:
【中文标题】To_date 在 Year 通配符前返回 2 个零【英文标题】:To_date returning 2 zeros in front of Year wildcard 【发布时间】:2015-07-24 04:13:22 【问题描述】:我想将“开始日期”和“结束日期”转换为不同于其他格式 (DD/MM/YYYY HH24:MM) 的不同格式 (YYYY-MM-DD HH24:MI:SS)。
当我运行以下命令时:
Update blarg
Set test1 = 'test',
test2 = 'test',
Start_Date = To_Date('23/07/2015 22:00','YYYY-MM-DD HH24:MI:SS'),
End_Date = To_Date('24/07/2015 00:00','YYYY-MM-DD HH24:MI:SS')
Where Id = '4';
数据库中的插入包括...
Start_Date = '0023-07-20 15:22:00'
End_Date = '0024-07-20 15:00:00'
我可以理解 Oracle 可能无法检测到初始日期格式并且不知道将值放在哪里,但我很好奇您是否可以告诉 Oracle 原始日期通配符,然后将其与通配符合并你想把它变成卡片。
【问题讨论】:
【参考方案1】:因为它是您在代码中使用格式掩码指定的内容:
'YYYY-MM-DD HH24:MI:SS'
请注意,它会从 2015
中删除 15
所以当你说: '23/07/2015` 并使用 'YYYY-MM-DD' 的掩码时,它会强制这样做:
23
--> YYYY
= 0023
等等
所以要解决,重新排列文字日期以适应 YYYY-MM-DD
的掩码(留作练习让您学习它:-)
SQL Format Models
【讨论】:
【参考方案2】:我想将“Start_date”和“End_date”转换为不同的格式
您误解了date
(或timestamp
)列的工作原理:
DATE
列没有“格式”
您在选择数据时看到的任何格式都由您使用的 SQL 客户端应用。
如果您想以不同的格式查看日期值,只需在选择它们时这样做:
select to_char(start_date,'YYYY-MM-DD HH24:MI:SS') as start_date,
to_char(end_date, ,'YYYY-MM-DD HH24:MI:SS') as end_date
from the_table;
如果您总是希望看到这种格式的日期,请更改 SQL 客户端的配置。
【讨论】:
以上是关于To_date 在 Year 通配符前返回 2 个零的主要内容,如果未能解决你的问题,请参考以下文章