如何让SQL更灵活地处理插补的内容';RR-MM-DD HH.MI.SSXFF AM';创建[22008][1855]ORA-01855:需要上午/上午或下午/下午
我必须用几种不同的方式输入日期如何让SQL更灵活地处理插补的内容';RR-MM-DD HH.MI.SSXFF AM';创建[22008][1855]ORA-01855:需要上午/上午或下午/下午,sql,oracle,Sql,Oracle,我必须用几种不同的方式输入日期 to_时间戳('2015-10-06 0:00:00.0 AM','RR-MM-DD HH.MI.SSXFF AM') 及 to_时间戳('2115-10-06 01:00:00.0 AM','RR-MM-DD HH.MI.SSXFF AM') 两种错误都有 ORA-01849:小时必须介于1和12之间 [22008][1855]ORA-01855:需要上午/上午或下午/下午 我试图实现的是能够使用2115-10-06 01:00:00.0 am或2015-10-
to_时间戳('2015-10-06 0:00:00.0 AM','RR-MM-DD HH.MI.SSXFF AM')
to_时间戳('2115-10-06 01:00:00.0 AM','RR-MM-DD HH.MI.SSXFF AM')
ORA-01849:小时必须介于1和12之间
[22008][1855]ORA-01855:需要上午/上午或下午/下午
我试图实现的是能够使用
2115-10-06 01:00:00.0 am
或2015-10-06 0:00:00.0 am
而不会给我一个关于此处约束的错误'RR-MM-DD HH.MI.SSXFF am'
一个12小时的时钟没有0小时
如果要支持第0小时作为第12小时的别名,则可以编写自定义函数以将0替换为12:
Oracle 11g R2架构设置:
CREATE FUNCTION parse_timestamp(
in_string VARCHAR2
) RETURN TIMESTAMP
IS
p_string VARCHAR2(30) := in_string;
c_fix_hours CHAR(61) := '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$';
BEGIN
IF REGEXP_LIKE( p_string, c_fix_hours, 'i' ) THEN
p_string := REGEXP_REPLACE( p_string, c_fix_hours, '\112\2', 1, 1, 'i' );
END IF;
RETURN TO_TIMESTAMP( p_string, 'RR-MM-DD HH12.MI.SSXFF AM' );
END;
/
SELECT parse_timestamp(
'2015-10-06 0:00:00.0 AM'
),
parse_timestamp(
'2115-10-06 01:00:00.0 AM'
)
FROM DUAL
| PARSE_TIMESTAMP('2015-10-060:00:00.0AM') | PARSE_TIMESTAMP('2115-10-0601:00:00.0AM') |
|------------------------------------------|-------------------------------------------|
| 2015-10-06 00:00:00.0 | 2115-10-06 01:00:00.0 |
WITH test_data ( value ) AS (
SELECT '2015-10-06 0:00:00.0 AM' FROM DUAL UNION ALL
SELECT '2115-10-06 01:00:00.0 AM' FROM DUAL UNION ALL
SELECT '5-9-7 00:59:59.234 PM' FROM DUAL
)
SELECT TO_TIMESTAMP(
CASE
WHEN REGEXP_LIKE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', 'i' )
THEN REGEXP_REPLACE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', '\112\2', 1, 1, 'i' )
ELSE value
END,
'RR-MM-DD HH12.MI.SSXFF AM'
) AS datetime
FROM test_data
| DATETIME |
|-------------------------|
| 2015-10-06 00:00:00.0 |
| 2115-10-06 01:00:00.0 |
| 2005-09-07 12:59:59.234 |
查询1:
CREATE FUNCTION parse_timestamp(
in_string VARCHAR2
) RETURN TIMESTAMP
IS
p_string VARCHAR2(30) := in_string;
c_fix_hours CHAR(61) := '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$';
BEGIN
IF REGEXP_LIKE( p_string, c_fix_hours, 'i' ) THEN
p_string := REGEXP_REPLACE( p_string, c_fix_hours, '\112\2', 1, 1, 'i' );
END IF;
RETURN TO_TIMESTAMP( p_string, 'RR-MM-DD HH12.MI.SSXFF AM' );
END;
/
SELECT parse_timestamp(
'2015-10-06 0:00:00.0 AM'
),
parse_timestamp(
'2115-10-06 01:00:00.0 AM'
)
FROM DUAL
| PARSE_TIMESTAMP('2015-10-060:00:00.0AM') | PARSE_TIMESTAMP('2115-10-0601:00:00.0AM') |
|------------------------------------------|-------------------------------------------|
| 2015-10-06 00:00:00.0 | 2115-10-06 01:00:00.0 |
WITH test_data ( value ) AS (
SELECT '2015-10-06 0:00:00.0 AM' FROM DUAL UNION ALL
SELECT '2115-10-06 01:00:00.0 AM' FROM DUAL UNION ALL
SELECT '5-9-7 00:59:59.234 PM' FROM DUAL
)
SELECT TO_TIMESTAMP(
CASE
WHEN REGEXP_LIKE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', 'i' )
THEN REGEXP_REPLACE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', '\112\2', 1, 1, 'i' )
ELSE value
END,
'RR-MM-DD HH12.MI.SSXFF AM'
) AS datetime
FROM test_data
| DATETIME |
|-------------------------|
| 2015-10-06 00:00:00.0 |
| 2115-10-06 01:00:00.0 |
| 2005-09-07 12:59:59.234 |
:
CREATE FUNCTION parse_timestamp(
in_string VARCHAR2
) RETURN TIMESTAMP
IS
p_string VARCHAR2(30) := in_string;
c_fix_hours CHAR(61) := '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$';
BEGIN
IF REGEXP_LIKE( p_string, c_fix_hours, 'i' ) THEN
p_string := REGEXP_REPLACE( p_string, c_fix_hours, '\112\2', 1, 1, 'i' );
END IF;
RETURN TO_TIMESTAMP( p_string, 'RR-MM-DD HH12.MI.SSXFF AM' );
END;
/
SELECT parse_timestamp(
'2015-10-06 0:00:00.0 AM'
),
parse_timestamp(
'2115-10-06 01:00:00.0 AM'
)
FROM DUAL
| PARSE_TIMESTAMP('2015-10-060:00:00.0AM') | PARSE_TIMESTAMP('2115-10-0601:00:00.0AM') |
|------------------------------------------|-------------------------------------------|
| 2015-10-06 00:00:00.0 | 2115-10-06 01:00:00.0 |
WITH test_data ( value ) AS (
SELECT '2015-10-06 0:00:00.0 AM' FROM DUAL UNION ALL
SELECT '2115-10-06 01:00:00.0 AM' FROM DUAL UNION ALL
SELECT '5-9-7 00:59:59.234 PM' FROM DUAL
)
SELECT TO_TIMESTAMP(
CASE
WHEN REGEXP_LIKE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', 'i' )
THEN REGEXP_REPLACE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', '\112\2', 1, 1, 'i' )
ELSE value
END,
'RR-MM-DD HH12.MI.SSXFF AM'
) AS datetime
FROM test_data
| DATETIME |
|-------------------------|
| 2015-10-06 00:00:00.0 |
| 2115-10-06 01:00:00.0 |
| 2005-09-07 12:59:59.234 |
更新使用案例
语句:
查询1:
CREATE FUNCTION parse_timestamp(
in_string VARCHAR2
) RETURN TIMESTAMP
IS
p_string VARCHAR2(30) := in_string;
c_fix_hours CHAR(61) := '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$';
BEGIN
IF REGEXP_LIKE( p_string, c_fix_hours, 'i' ) THEN
p_string := REGEXP_REPLACE( p_string, c_fix_hours, '\112\2', 1, 1, 'i' );
END IF;
RETURN TO_TIMESTAMP( p_string, 'RR-MM-DD HH12.MI.SSXFF AM' );
END;
/
SELECT parse_timestamp(
'2015-10-06 0:00:00.0 AM'
),
parse_timestamp(
'2115-10-06 01:00:00.0 AM'
)
FROM DUAL
| PARSE_TIMESTAMP('2015-10-060:00:00.0AM') | PARSE_TIMESTAMP('2115-10-0601:00:00.0AM') |
|------------------------------------------|-------------------------------------------|
| 2015-10-06 00:00:00.0 | 2115-10-06 01:00:00.0 |
WITH test_data ( value ) AS (
SELECT '2015-10-06 0:00:00.0 AM' FROM DUAL UNION ALL
SELECT '2115-10-06 01:00:00.0 AM' FROM DUAL UNION ALL
SELECT '5-9-7 00:59:59.234 PM' FROM DUAL
)
SELECT TO_TIMESTAMP(
CASE
WHEN REGEXP_LIKE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', 'i' )
THEN REGEXP_REPLACE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', '\112\2', 1, 1, 'i' )
ELSE value
END,
'RR-MM-DD HH12.MI.SSXFF AM'
) AS datetime
FROM test_data
| DATETIME |
|-------------------------|
| 2015-10-06 00:00:00.0 |
| 2115-10-06 01:00:00.0 |
| 2005-09-07 12:59:59.234 |
:
CREATE FUNCTION parse_timestamp(
in_string VARCHAR2
) RETURN TIMESTAMP
IS
p_string VARCHAR2(30) := in_string;
c_fix_hours CHAR(61) := '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$';
BEGIN
IF REGEXP_LIKE( p_string, c_fix_hours, 'i' ) THEN
p_string := REGEXP_REPLACE( p_string, c_fix_hours, '\112\2', 1, 1, 'i' );
END IF;
RETURN TO_TIMESTAMP( p_string, 'RR-MM-DD HH12.MI.SSXFF AM' );
END;
/
SELECT parse_timestamp(
'2015-10-06 0:00:00.0 AM'
),
parse_timestamp(
'2115-10-06 01:00:00.0 AM'
)
FROM DUAL
| PARSE_TIMESTAMP('2015-10-060:00:00.0AM') | PARSE_TIMESTAMP('2115-10-0601:00:00.0AM') |
|------------------------------------------|-------------------------------------------|
| 2015-10-06 00:00:00.0 | 2115-10-06 01:00:00.0 |
WITH test_data ( value ) AS (
SELECT '2015-10-06 0:00:00.0 AM' FROM DUAL UNION ALL
SELECT '2115-10-06 01:00:00.0 AM' FROM DUAL UNION ALL
SELECT '5-9-7 00:59:59.234 PM' FROM DUAL
)
SELECT TO_TIMESTAMP(
CASE
WHEN REGEXP_LIKE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', 'i' )
THEN REGEXP_REPLACE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', '\112\2', 1, 1, 'i' )
ELSE value
END,
'RR-MM-DD HH12.MI.SSXFF AM'
) AS datetime
FROM test_data
| DATETIME |
|-------------------------|
| 2015-10-06 00:00:00.0 |
| 2115-10-06 01:00:00.0 |
| 2005-09-07 12:59:59.234 |
12小时的时钟没有0小时 如果要支持第0小时作为第12小时的别名,则可以编写自定义函数以将0替换为12: Oracle 11g R2架构设置:
CREATE FUNCTION parse_timestamp(
in_string VARCHAR2
) RETURN TIMESTAMP
IS
p_string VARCHAR2(30) := in_string;
c_fix_hours CHAR(61) := '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$';
BEGIN
IF REGEXP_LIKE( p_string, c_fix_hours, 'i' ) THEN
p_string := REGEXP_REPLACE( p_string, c_fix_hours, '\112\2', 1, 1, 'i' );
END IF;
RETURN TO_TIMESTAMP( p_string, 'RR-MM-DD HH12.MI.SSXFF AM' );
END;
/
SELECT parse_timestamp(
'2015-10-06 0:00:00.0 AM'
),
parse_timestamp(
'2115-10-06 01:00:00.0 AM'
)
FROM DUAL
| PARSE_TIMESTAMP('2015-10-060:00:00.0AM') | PARSE_TIMESTAMP('2115-10-0601:00:00.0AM') |
|------------------------------------------|-------------------------------------------|
| 2015-10-06 00:00:00.0 | 2115-10-06 01:00:00.0 |
WITH test_data ( value ) AS (
SELECT '2015-10-06 0:00:00.0 AM' FROM DUAL UNION ALL
SELECT '2115-10-06 01:00:00.0 AM' FROM DUAL UNION ALL
SELECT '5-9-7 00:59:59.234 PM' FROM DUAL
)
SELECT TO_TIMESTAMP(
CASE
WHEN REGEXP_LIKE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', 'i' )
THEN REGEXP_REPLACE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', '\112\2', 1, 1, 'i' )
ELSE value
END,
'RR-MM-DD HH12.MI.SSXFF AM'
) AS datetime
FROM test_data
| DATETIME |
|-------------------------|
| 2015-10-06 00:00:00.0 |
| 2115-10-06 01:00:00.0 |
| 2005-09-07 12:59:59.234 |
查询1:
CREATE FUNCTION parse_timestamp(
in_string VARCHAR2
) RETURN TIMESTAMP
IS
p_string VARCHAR2(30) := in_string;
c_fix_hours CHAR(61) := '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$';
BEGIN
IF REGEXP_LIKE( p_string, c_fix_hours, 'i' ) THEN
p_string := REGEXP_REPLACE( p_string, c_fix_hours, '\112\2', 1, 1, 'i' );
END IF;
RETURN TO_TIMESTAMP( p_string, 'RR-MM-DD HH12.MI.SSXFF AM' );
END;
/
SELECT parse_timestamp(
'2015-10-06 0:00:00.0 AM'
),
parse_timestamp(
'2115-10-06 01:00:00.0 AM'
)
FROM DUAL
| PARSE_TIMESTAMP('2015-10-060:00:00.0AM') | PARSE_TIMESTAMP('2115-10-0601:00:00.0AM') |
|------------------------------------------|-------------------------------------------|
| 2015-10-06 00:00:00.0 | 2115-10-06 01:00:00.0 |
WITH test_data ( value ) AS (
SELECT '2015-10-06 0:00:00.0 AM' FROM DUAL UNION ALL
SELECT '2115-10-06 01:00:00.0 AM' FROM DUAL UNION ALL
SELECT '5-9-7 00:59:59.234 PM' FROM DUAL
)
SELECT TO_TIMESTAMP(
CASE
WHEN REGEXP_LIKE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', 'i' )
THEN REGEXP_REPLACE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', '\112\2', 1, 1, 'i' )
ELSE value
END,
'RR-MM-DD HH12.MI.SSXFF AM'
) AS datetime
FROM test_data
| DATETIME |
|-------------------------|
| 2015-10-06 00:00:00.0 |
| 2115-10-06 01:00:00.0 |
| 2005-09-07 12:59:59.234 |
:
CREATE FUNCTION parse_timestamp(
in_string VARCHAR2
) RETURN TIMESTAMP
IS
p_string VARCHAR2(30) := in_string;
c_fix_hours CHAR(61) := '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$';
BEGIN
IF REGEXP_LIKE( p_string, c_fix_hours, 'i' ) THEN
p_string := REGEXP_REPLACE( p_string, c_fix_hours, '\112\2', 1, 1, 'i' );
END IF;
RETURN TO_TIMESTAMP( p_string, 'RR-MM-DD HH12.MI.SSXFF AM' );
END;
/
SELECT parse_timestamp(
'2015-10-06 0:00:00.0 AM'
),
parse_timestamp(
'2115-10-06 01:00:00.0 AM'
)
FROM DUAL
| PARSE_TIMESTAMP('2015-10-060:00:00.0AM') | PARSE_TIMESTAMP('2115-10-0601:00:00.0AM') |
|------------------------------------------|-------------------------------------------|
| 2015-10-06 00:00:00.0 | 2115-10-06 01:00:00.0 |
WITH test_data ( value ) AS (
SELECT '2015-10-06 0:00:00.0 AM' FROM DUAL UNION ALL
SELECT '2115-10-06 01:00:00.0 AM' FROM DUAL UNION ALL
SELECT '5-9-7 00:59:59.234 PM' FROM DUAL
)
SELECT TO_TIMESTAMP(
CASE
WHEN REGEXP_LIKE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', 'i' )
THEN REGEXP_REPLACE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', '\112\2', 1, 1, 'i' )
ELSE value
END,
'RR-MM-DD HH12.MI.SSXFF AM'
) AS datetime
FROM test_data
| DATETIME |
|-------------------------|
| 2015-10-06 00:00:00.0 |
| 2115-10-06 01:00:00.0 |
| 2005-09-07 12:59:59.234 |
更新使用案例
语句:
查询1:
CREATE FUNCTION parse_timestamp(
in_string VARCHAR2
) RETURN TIMESTAMP
IS
p_string VARCHAR2(30) := in_string;
c_fix_hours CHAR(61) := '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$';
BEGIN
IF REGEXP_LIKE( p_string, c_fix_hours, 'i' ) THEN
p_string := REGEXP_REPLACE( p_string, c_fix_hours, '\112\2', 1, 1, 'i' );
END IF;
RETURN TO_TIMESTAMP( p_string, 'RR-MM-DD HH12.MI.SSXFF AM' );
END;
/
SELECT parse_timestamp(
'2015-10-06 0:00:00.0 AM'
),
parse_timestamp(
'2115-10-06 01:00:00.0 AM'
)
FROM DUAL
| PARSE_TIMESTAMP('2015-10-060:00:00.0AM') | PARSE_TIMESTAMP('2115-10-0601:00:00.0AM') |
|------------------------------------------|-------------------------------------------|
| 2015-10-06 00:00:00.0 | 2115-10-06 01:00:00.0 |
WITH test_data ( value ) AS (
SELECT '2015-10-06 0:00:00.0 AM' FROM DUAL UNION ALL
SELECT '2115-10-06 01:00:00.0 AM' FROM DUAL UNION ALL
SELECT '5-9-7 00:59:59.234 PM' FROM DUAL
)
SELECT TO_TIMESTAMP(
CASE
WHEN REGEXP_LIKE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', 'i' )
THEN REGEXP_REPLACE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', '\112\2', 1, 1, 'i' )
ELSE value
END,
'RR-MM-DD HH12.MI.SSXFF AM'
) AS datetime
FROM test_data
| DATETIME |
|-------------------------|
| 2015-10-06 00:00:00.0 |
| 2115-10-06 01:00:00.0 |
| 2005-09-07 12:59:59.234 |
:
CREATE FUNCTION parse_timestamp(
in_string VARCHAR2
) RETURN TIMESTAMP
IS
p_string VARCHAR2(30) := in_string;
c_fix_hours CHAR(61) := '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$';
BEGIN
IF REGEXP_LIKE( p_string, c_fix_hours, 'i' ) THEN
p_string := REGEXP_REPLACE( p_string, c_fix_hours, '\112\2', 1, 1, 'i' );
END IF;
RETURN TO_TIMESTAMP( p_string, 'RR-MM-DD HH12.MI.SSXFF AM' );
END;
/
SELECT parse_timestamp(
'2015-10-06 0:00:00.0 AM'
),
parse_timestamp(
'2115-10-06 01:00:00.0 AM'
)
FROM DUAL
| PARSE_TIMESTAMP('2015-10-060:00:00.0AM') | PARSE_TIMESTAMP('2115-10-0601:00:00.0AM') |
|------------------------------------------|-------------------------------------------|
| 2015-10-06 00:00:00.0 | 2115-10-06 01:00:00.0 |
WITH test_data ( value ) AS (
SELECT '2015-10-06 0:00:00.0 AM' FROM DUAL UNION ALL
SELECT '2115-10-06 01:00:00.0 AM' FROM DUAL UNION ALL
SELECT '5-9-7 00:59:59.234 PM' FROM DUAL
)
SELECT TO_TIMESTAMP(
CASE
WHEN REGEXP_LIKE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', 'i' )
THEN REGEXP_REPLACE( value, '^(\d{1,4}-\d\d?-\d\d? )00?(:[0-5]?\d:[0-5]?\d(\.\d+)? [AP]M)$', '\112\2', 1, 1, 'i' )
ELSE value
END,
'RR-MM-DD HH12.MI.SSXFF AM'
) AS datetime
FROM test_data
| DATETIME |
|-------------------------|
| 2015-10-06 00:00:00.0 |
| 2115-10-06 01:00:00.0 |
| 2005-09-07 12:59:59.234 |
RR
是没有世纪的年份,请尝试使用YYYY
来代替。检查:每个周期由12个小时组成,编号为:12(作为零)、1、2、3、4、5、6、7、8、9、10和11。-不允许使用0。@WernfriedDomscheit我编写了一个脚本来提取数据,但我并没有获取相同的数据并将其放回。当我添加导致ORA-01818的HH24
时:“HH24”禁止使用子午线指示器,这意味着你不能使用AM
或PM
-你不能同时使用12小时和24小时格式。RR
是没有世纪的一年,改为尝试YYYY
。检查:每个时段由12个小时组成,编号为:12(充当零)、1、2、3、4、5、6、7、8、9、10和11。-不允许使用0。@WernfriedDomscheit我编写了一个脚本来提取数据,但我并没有获取相同的数据并将其放回。当我添加HH24
导致ORA-01818时:“HH24”阻止使用子午线指示器
,这意味着你不能使用AM
或PM
-你不能同时使用12小时和24小时格式。非常感谢你的详细回复,但我无法更改数据库中的任何内容。这将与我正在测试的内容背道而驰。我需要弄清楚的是,它允许我使用24H
time格式。建议?@noname\u dev使用CASE
语句。非常感谢您的详细回复,但我无法更改数据库中的任何内容。这将与我正在测试的内容背道而驰。我需要弄清楚的是,它允许我使用24H
time格式。建议?@noname\u dev使用CASE
语句。