SQL存储过程转换日期参数

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

我有一个SQL存储过程,它接受两个日期,但是当我在打开的查询中发送它们时,Oracle出于某种原因不喜欢日期格式

在使用发送之前,如何将存储过程中的日期格式从
DD-MM-YYYY
更改为
YYYY-MM-DD

e、 g
SET@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都是非常好的。这取决于日期和字符串之间转换的方向。