oracle - 如何将具有日期数据类型的列格式化为 YYYY-MM-DD
问题描述
我正在创建一个新表,我需要一个数据类型为 DATE 的列在初始化该列时具有格式 YYYY-MM-DD。我使用了 CHECK TO_DATE() 但我收到一条错误消息,这可能来自我在表中输入值的方式?
我试过 my_date DATE CHECK (my_date = TO_DATE(my_date,'YYYY-MM-DD')
CREATE TABLE my_table(mytable_id VARCHAR(2) PRIMARY KEY
my_date DATE NOT NULL
CHECK (my_date = TO_DATE(my_date,'YYYY-MM-DD')));
INSERT INTO my_table VALUES('01','2019-09-28');
SELECT * FROM my_table;
我期望我的列和行,但相反,它给了我一条错误消息 ORA-01861:文字与格式字符串不匹配。我尝试了几种方法,但没有任何效果。谢谢您的帮助。
解决方案
在您的架构my_date
中已经是日期,您无法将日期转换为日期,此行没有意义:
my_date DATE NOT NULL
CHECK (my_date = TO_DATE(my_date,'YYYY-MM-DD')));
您可以写入to_date
将字符串转换为日期:
INSERT INTO my_table VALUES('01',TO_DATE('2019-09-28'));
您应该了解 Oracle 不date
以字符串格式存储,Oracledate
以内部二进制格式存储,因此,您应该从字符串转换为date
.
如果要在输出时格式化日期,方法是使用to_char
:
select to_char( my_date, 'YYYY-MM-DD' ) as myFormatedDate
from my_table;
推荐阅读
- c# - 使用两个程序集,一个带有预处理器定义,一个没有
- java - Spring-jdbc-4.0.5.release:以编程方式设置 DriverManagerDataSource 连接超时
- python - Numpy 3d 数组 - 从 for 循环切换到 numpy 方法
- python - 如何在 Python 中处理多个客户端连接并同时响应它们?
- javascript - 在Javascript中将图案绘制到矩形
- python - Python - 来自一个数据帧的日期时间列并从另一个数据帧中查找日期时间范围
- r - 如何在 Windows 10 计算机上将 Unix 中创建的文件读入 R?
- arrays - Swift 根据日期对混合对象类型的数组进行排序
- php - 如何在 php 中使用动态数组键创建字符串?
- python - 如何从许多选项卡中选择特定选项卡以在 pyqt 上添加信息?