【问题标题】:search date and time in oracle using to_char使用 to_char 在 oracle 中搜索日期和时间
【发布时间】:2012-09-18 03:55:57
【问题描述】:

在 oracle 中,当我使用以下查询进行搜索时,它获取了错误的记录(请查看随附的屏幕截图),有人可以建议 12 小时的正确格式吗?

to_char(a.created, 'MM/DD/YYYY HH12:MI:SS') >='05/23/2012 12:00:00'

谢谢, 基兰.

【问题讨论】:

    标签: sql oracle timestamp to-char


    【解决方案1】:

    不要基于字符串进行搜索。根据日期搜索。如果你搜索一个字符串,你会得到不是你想要的字符串比较语义。字符串“06/01/1900”按字母顺序排在字符串“05/23/2012”之后,尽管它表示的日期要早得多。

    a.created >= to_date('05/23/2012 12:00:00', 'mm/dd/yyyy hh24:mi:ss' )
    

    或使用 12 小时制

    a.created >= to_date('05/23/2012 03:15:00 pm', 'mm/dd/yyyy hh:mi:ss am' )
    

    【讨论】:

    • 感谢贾斯汀,但我如何搜索 >=05/23/2012 03:15:00 pm
    • @Kiranshell,贾斯汀根据您指定的日期/时间为您提供了一个示例。如果您想将其更改为不同的时间,只需更改它即可。 Justin 的示例使用 24 小时制,因此您可以使用 '05/23/2012 15:15:00'
    • @Jeffrey Kemp,它不适用于 '05/23/2012 15:15:00',它会抛出“ORA-01849:小时必须在 1 到 12 之间”。贾斯汀的第二个解决方案效果很好。
    • @Kiranshell,是的,当然,如果您在小时格式指定 12 小时制 (HH12) 时输入 15,它将不起作用。我提到的贾斯汀的原始示例使用 24 小时制 (HH24)。
    猜你喜欢
    • 2016-12-20
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 2015-06-30
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多