Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于检查特定日期格式的SQL Case语句_Sql_String_Oracle_Datetime_Case - Fatal编程技术网

用于检查特定日期格式的SQL Case语句

用于检查特定日期格式的SQL Case语句,sql,string,oracle,datetime,case,Sql,String,Oracle,Datetime,Case,我有一个Oracle表,表中有不同日期的col_date,我想根据以下条件更新我的表: 如果col_date列的日期格式为“MM/dd/yy”,则将日期更改为oracle日期格式为“dd-MMM-yyy”,否则更新为空 在下列情况下受审: 选择字段1, 字段2, 案例 当检查日期输入类似于日期时(检查日期输入'MM/dd/yy') 然后是日期格式(到日期(检查日期输入'MM/dd/yy'),'dd MMM yyyy') 否则无效 以支票日期结束 从桌子上 此查询在所有情况下都将日期字段更新为n

我有一个Oracle表,表中有不同日期的col_date,我想根据以下条件更新我的表:

  • 如果col_date列的日期格式为“MM/dd/yy”,则将日期更改为oracle日期格式为“dd-MMM-yyy”,否则更新为空
  • 在下列情况下受审:

    选择字段1,
    字段2,
    案例
    当检查日期输入类似于日期时(检查日期输入'MM/dd/yy')
    然后是日期格式(到日期(检查日期输入'MM/dd/yy'),'dd MMM yyyy')
    否则无效
    以支票日期结束
    从桌子上
    

    此查询在所有情况下都将日期字段更新为null。请指导编写正确的案例条件。

    Oracle日期没有特定格式。它是以某种内部格式存储的,您实际上不需要担心。另一方面,在显示日期时,Oracle会构建一个日期的字符串表示形式,您可以在输出中看到该日期

    默认情况下,格式由nls参数
    nls\u date\u format
    定义。通过在会话中更改数据库设置,或者在查询中明确使用
    to_char()
    ,可以将其更改为任何您喜欢的内容

    假设您想要格式化
    dd-mmm-yyyy
    ,那么您可以执行以下任一操作:

    alter session set nls_date_format = 'dd-mm-yyyy';
    
    然后以以下方式运行查询:

    select field1, field2, check_date_input from mytable
    
    nls设置在会话的生命周期内保持有效,因此每个
    date
    列都将以该格式显示在结果集中

    或者,您可以在查询中使用
    来\u char()

    select field1, field2, to_char(check_date_input, 'dd-mm-yyyy') as check_date_input from mytable
    

    Oracle日期没有特定的格式。它是以某种内部格式存储的,您实际上不需要担心。另一方面,在显示日期时,Oracle会构建一个日期的字符串表示形式,您可以在输出中看到该日期

    默认情况下,格式由nls参数
    nls\u date\u format
    定义。通过在会话中更改数据库设置,或者在查询中明确使用
    to_char()
    ,可以将其更改为任何您喜欢的内容

    假设您想要格式化
    dd-mmm-yyyy
    ,那么您可以执行以下任一操作:

    alter session set nls_date_format = 'dd-mm-yyyy';
    
    然后以以下方式运行查询:

    select field1, field2, check_date_input from mytable
    
    nls设置在会话的生命周期内保持有效,因此每个
    date
    列都将以该格式显示在结果集中

    或者,您可以在查询中使用
    来\u char()

    select field1, field2, to_char(check_date_input, 'dd-mm-yyyy') as check_date_input from mytable
    

    Oracle日期数据类型没有格式。格式仅在使用内置函数将日期转换为\u CHAR或\u DATE时使用。Oracle不是MySQL。您应该从问题中删除“mysql”标记。请注意,Oracle日期数据类型同时包含日期和时间。LIKE运算符用于CHAR或VARCHAR2数据类型,而不用于日期数据类型。这正是您所编写的。else条件告诉您,如果格式不匹配,则返回null。2.请仅标记您正在使用的一个数据库,当前该数据库似乎混淆了。已删除标记,但是我的sql不适用于任何格式,它只更新为空值。您能帮助我修复查询问题吗..是否可以从表中提供一些混合格式的示例数据,以及您如何查看预期的输出。
    检查日期输入的数据类型是什么
    ?如果它是varchar2,并且您混合了
    mm/dd/yy
    dd/mm/yy
    ,那么您确实遇到了麻烦,因为当
    dd
    小于13时,无法判断它是哪一个。Oracle日期数据类型没有格式。格式仅在使用内置函数将日期转换为\u CHAR或\u DATE时使用。Oracle不是MySQL。您应该从问题中删除“mysql”标记。请注意,Oracle日期数据类型同时包含日期和时间。LIKE运算符用于CHAR或VARCHAR2数据类型,而不用于日期数据类型。这正是您所编写的。else条件告诉您,如果格式不匹配,则返回null。2.请仅标记您正在使用的一个数据库,当前该数据库似乎混淆了。已删除标记,但是我的sql不适用于任何格式,它只更新为空值。您能帮助我修复查询问题吗..是否可以从表中提供一些混合格式的示例数据,以及您如何查看预期的输出。
    检查日期输入的数据类型是什么
    ?如果它是varchar2,并且你混合了
    mm/dd/yy
    dd/mm/yy
    ,那么你真的有麻烦了,因为当
    dd
    小于13时,没有办法分辨它是哪一个。