mysql - 在 Oracle 中查找时间时为 "day of month must be between 1 and last day of month"

标签 mysql date datetime

这可能相当简单,但我只是不知道如何解决这个问题。

所以这是我正在做的一个简单的查询:

SELECT TO_CHAR(DATE,'DD-MM-YYYY') AS DATE, TO_CHAR(TIME,'HH24:MI') AS TIME,
CODEROOM, GROUP0, GROUP1, GROUP2, GROUP3,
FROM CONCERTS
WHERE DATE = '20-05-16' AND TIME = '00:00'  AND CODEROOM = '1'

现在,如果我执行完全相同的查询并删除“AND TIME = '00:00'”,则一切正常,但如果我尝试搜索 TIME,则会引发以下错误:

01847. 00000 -  "day of month must be between 1 and last day of month"

我知道我可以将时间和日期分组在同一列中,我尝试过,但也没有设法修复它。

我真的不知道如何解决这个问题,我知道这可能是因为 Oracle 中的日期存储日期和时间,尽管时间不错,但它可能有一个无效的日期,但如果是这样的话,错误执行查询时会被抛出,我什至无法执行它(我还检查了日期是否有效)

有什么办法可以解决这个问题吗?我一直在查找,但似乎找不到解决方案

提前非常感谢:)

最佳答案

首先,您可能首先需要更改列定义,以便获得有意义的名称,例如 CONCERT_DATECONCERT_TIME

其次,您需要在 where 子句上应用相同的 to_char 函数 嗯..

SELECT TO_CHAR(DATE,'DD-MM-YYYY') AS CONCERT_DATE, TO_CHAR(TIME,'HH24:MI') AS CONCERT_TIME,
CODEROOM, GROUP0, GROUP1, GROUP2, GROUP3,
FROM CONCERTS
WHERE TO_CHAR(DATE,'DD-MM-YYYY') = '20-05-2016' 
  AND TO_CHAR(TIME,'HH24:MI') = '00:00'  
  AND CODEROOM = '1'

关于mysql - 在 Oracle 中查找时间时为 "day of month must be between 1 and last day of month",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37466084/

相关文章:

php - 如何在 php 中找到日期时间类型和当前日期/时间之间的差异?

mysql - 将全表导入一个(几乎)空的新表

ruby-on-rails - 比较 ruby​​ on rails 中的两个日期给出错误 - "can' t 将日期转换为字符串”

python - 验证 SQLAlchemy 字段

python - 如何通过将日期与该数据框中的日期时间对象进行比较来获取数据框中的索引值?

ios - Swift:如何将Date()转换为苹果服务器的时区以验证收据?

Python日期时间和UTC偏移量转换忽略时区/夏令时

powershell 中的日期/时间条件 - SharePoint - LastItemModifiedDate - LastRunTime

php - 如何计算折扣并将返回记录的总数相加 - PHP/MySQL

mysql - 关于优化MySQL查询: Simple MySQL query takes more than 3 seconds