Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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日期时间变量_Sql_Oracle - Fatal编程技术网

SQL日期时间变量

SQL日期时间变量,sql,oracle,Sql,Oracle,当我使用此选项时: VAR v_start_date VARCHAR2(30); EXEC :v_start_date := to_date('03-06-2013 04:00:00 PM','DD-MM-RRRR HH:MI:SS AM'); VAR v_end_date VARCHAR2(30); EXEC :v_end_date := to_date('04-06-2013 04:00:00 PM','DD-MM-RRRR HH:MI:SS AM');

当我使用此选项时:

    VAR v_start_date VARCHAR2(30);
    EXEC :v_start_date := to_date('03-06-2013 04:00:00 PM','DD-MM-RRRR HH:MI:SS AM');
    VAR v_end_date VARCHAR2(30);
    EXEC :v_end_date := to_date('04-06-2013 04:00:00 PM','DD-MM-RRRR HH:MI:SS AM');

    print v_start_date
    print v_end_date 
我的输出缩短为:

    v_start_date                  
    ------------------------------
    03-JUN-13                     

    v_end_date                    
    ------------------------------
    04-JUN-13                     
如何使变量保留一天中的时间?

这应该可以:

VAR v_start_date VARCHAR2(30);
EXEC :v_start_date := to_date('03-06-2013 04:00:00 PM','DD-MM-RRRR HH:MI:SS AM');
VAR v_end_date VARCHAR2(30);
EXEC :v_end_date := to_date('04-06-2013 04:00:00 PM','DD-MM-RRRR HH:MI:SS AM');

print to_char(v_start_date,'DD-MM-RRRR HH:MI:SS AM');
print to_char(v_end_date,'DD-MM-RRRR HH:MI:SS AM');
编辑

有关_char的更多信息:


将返回的datetime值指定给varchar时,您正在隐式转换为\u date。您应该使用适当的样式将其显式转换为字符,例如:

EXEC :v_start_date := to_char(
    to_date('03-06-2013 04:00:00 PM','DD-MM-RRRR HH:MI:SS AM'), 
    'YYYY-MM-DD HH24:MI:SS');

如前所述,使用
将日期格式化为\u CHAR
,或者使用世纪和时间输出当前SQLPlus会话的所有日期,使用以下内容设置会话日期格式:

ALTER SESSION SET NLS_DATE_FORMAT = 'MM/DD/YYYY HH:MI:SS AM';
在该点之后查询的任何日期都将采用指定的格式

要重置为通常的Oracle默认值,请执行以下操作:

ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-RR';

Oracle
DATETIME
格式代码有文档记录

您使用的是哪种DBMS?神谕它非常重要,特别是在日期和时间方面,每个系统都不同于其他系统(至少部分不同)。