SQL存储过程转换日期参数
我有一个SQL存储过程,它接受两个日期,但是当我在打开的查询中发送它们时,Oracle出于某种原因不喜欢日期格式 在使用发送之前,如何将存储过程中的日期格式从SQL存储过程转换日期参数,sql,oracle,stored-procedures,plsql,Sql,Oracle,Stored Procedures,Plsql,我有一个SQL存储过程,它接受两个日期,但是当我在打开的查询中发送它们时,Oracle出于某种原因不喜欢日期格式 在使用发送之前,如何将存储过程中的日期格式从DD-MM-YYYY更改为YYYY-MM-DD e、 gSET@startdate=CONVERT使用将字符串值转换为Oracle日期数据类型 要接受格式为YYYY-MM-DD的日期字符串,请执行以下操作: v_start_date DATE := TO_DATE(v_date_string, 'YYYY-MM-DD'); 要接受格式为D
DD-MM-YYYY
更改为YYYY-MM-DD
e、 gSET@startdate=CONVERT
使用将字符串值转换为Oracle日期数据类型
要接受格式为YYYY-MM-DD的日期字符串,请执行以下操作:
v_start_date DATE := TO_DATE(v_date_string, 'YYYY-MM-DD');
要接受格式为DD-MM-YYYY的日期字符串,请执行以下操作:
v_start_date DATE := TO_DATE(v_date_string, 'DD-MM-YYYY');
您可以使用Oracle的
功能
/*retrieve from query*/
select TO_CHAR(reg_date,'YYYY-MM-DD') REGDATE from Users_TBL
/*Assign to variable*/
regDate := TO_CHAR(reg_date,'YYYY-MM-DD');
如果Oracle不接受该格式,则现有日期值不是问题。TO_DATE函数不适用于“YYYY-MM-DD”格式。这就是为什么尝试使用“to_CHAR”而不是“to_DATE”。YYYY-MM-DD
“对于to_DATE和to_CHAR都是非常好的。这取决于日期和字符串之间转换的方向。