【问题标题】:SQL Data truncation: Incorrect date valueSQL 数据截断:日期值不正确
【发布时间】:2015-11-08 04:40:19
【问题描述】:

我收到此错误。

数据截断:日期值不正确:列的“18-JUN-13” 'dateFrom' 在第 1 行

这个错误的原因可能是什么?

INSERT INTO Booking (hotelNo, guestNo, dateFrom, dateTo, roomNo) VALUES ('01', '01', '18-JUN-13', '26-NOV-13', '01'); 
INSERT INTO Booking (hotelNo, guestNo, dateFrom, dateTo, roomNo) VALUES ('02', '01', '18-JUN-85', '26-JUN-85', '02'); 
INSERT INTO Booking (hotelNo, guestNo, dateFrom, dateTo, roomNo) VALUES ('02', '03', '18-JUN-66', '26-JUN-66', '01'); 
INSERT INTO Booking (hotelNo, guestNo, dateFrom, dateTo, roomNo) VALUES ('04', '02', '18-OCT-13', '23-OCT-13', '01'); 
INSERT INTO Booking (hotelNo, guestNo, dateFrom, dateTo, roomNo) VALUES ('02', '03', '18-JUL-87', '26-AUG-87', '01'); 
INSERT INTO Booking (hotelNo, guestNo, dateFrom, dateTo, roomNo) VALUES ('02', '03', '18-AUG-87', '26-AUG-87', '01'); 
INSERT INTO Booking (hotelNo, guestNo, dateFrom, dateTo, roomNo) VALUES ('02', '01', '18-AUG-87', '26-SEP-87', '01');

【问题讨论】:

  • incorrect date value 似乎是一个明显的线索 - 查看to_date 可能会有所帮助,例如here
  • 您是否有一个触发器,可能是拒绝过去的预订?否则,您将如何执行这些语句 - 没有显示 ORA 错误代码,因此您的客户端/应用程序/等。似乎有什么事情瞒着你。
  • 嗨,Alex,我是 SQL 新手;使用 SQL Fiddle 进行练习。我查看了我在此区域之前的代码,并没有发现任何问题。感谢您的意见!
  • 它看起来不像是 Oracle 错误,因为它不是一个;这是一个 MySQL 错误。您是否从 SQL Fiddle 下拉菜单中选择了正确的 RDBMS? (如果您打算使用 MySQL,请适当标记您的问题)
  • 嗨,Alex,我在 SQL Fiddle 的下拉框中选择了 oracle11g。

标签: sql error-handling oracle11g truncation


【解决方案1】:

如果您绝对不需要依赖格式化的日期,use the SQL standard DATE literal instead, as I've described in this blog post,总是如此。所以,而不是:

INSERT INTO Booking (hotelNo, guestNo, dateFrom, dateTo, roomNo) 
VALUES ('01', '01', '18-JUN-13', '26-NOV-13', '01'); 

...写:

INSERT INTO Booking (hotelNo, guestNo, dateFrom, dateTo, roomNo) 
VALUES ('01', '01', DATE '2013-06-18', DATE '2013-11-26', '01'); 

如果需要该格式(例如,因为您从某个外部源加载数据),请使用 TO_DATE() 对其进行解析:

INSERT INTO Booking (hotelNo, guestNo, dateFrom, dateTo, roomNo) 
VALUES (
  '01', 
  '01', 
  TO_DATE('18-JUN-13', 'DD-MON-YY'), 
  TO_DATE('26-NOV-13', 'DD-MON-YY'), 
  '01'
); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    • 2018-10-25
    • 2013-12-04
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多