我看到了这个问题, 所以我对此问题有一个疑问:在以下查询中,在相同日期我得到的结果是不同的。
SELECT TO_CHAR(to_date(sysdate, 'DD-MON-yy'), 'DAY'),
TO_CHAR(to_date(sysdate, 'DD-MON-yyyy'), 'DAY'),
TO_CHAR(to_date(sysdate, 'DD-MON-rr'), 'DAY'),
TO_CHAR(to_date(sysdate, 'DD-MON-rrrr'), 'DAY')
FROM dual;
按列输出:
TUESDAY SUNDAY TUESDAY TUESDAY
请帮助我,在此先谢谢。
编辑
我写了一个简单的过程,通过它可以找到下面给出的日期:
SET serveroutput ON;
CREATE OR REPLACE
PROCEDURE simple_test
(
date_in IN VARCHAR2)
IS
v_date DATE := to_date(date_in,'dd-mon-yyyy');
v_day VARCHAR2(10):=TO_CHAR(v_date,'day');
BEGIN
dbms_output.put_line('the day of given date is '||v_day);
END;
/
EXEC simple_test(sysdate);
anonymous block completed
the day of given date is sunday
EXEC simple_test(‘01 -JAN-2013’);
anonymous block completed
the day of given date is tuesday
为什么会这样?
我想解释一下为什么您会得到不同的结果。
看到这个sqlfiddle
就像已经说过的那样,sysdate被视为DATE
类型,并且您在进行隐式转换时
select to_date(sysdate, format) from dual;
因为to_date的第一个参数应该是varchar类型,所以系统会执行以下操作:
select to_date(to_char(sysdate), format) from dual;
因为您的隐式日期格式为'DD-MON-YY'
,所以查询进入:
SELECT TO_CHAR(to_date('01-JAN-13', 'DD-MON-yy'), 'DAY'),
TO_CHAR(to_date('01-JAN-13', 'DD-MON-yyyy'), 'DAY'),
TO_CHAR(to_date('01-JAN-13', 'DD-MON-rr'), 'DAY'),
TO_CHAR(to_date('01-JAN-13', 'DD-MON-rrrr'), 'DAY')
FROM dual;
由于yyyy
是整整千年的格式,因此第二个to_date转到‘01 -JAN-0013’,它是13AD,可能是SUNDAY :)
问题内容: 当我运行此查询时,输出为:SUNDAY。但我们知道今天是星期二(2013年1月1日)。和 然后将查询更改为 答案是:星期二。 然后将查询更改为 答案是:星期一。 当我使用sysdate时,为什么将SUNDAY显示为输出? 我是oracle db的新手。请帮我。 问题答案: 用这个: 您正在使用此: 给您日期= 1/1/0013,即星期天
SQL用例是否可以显示操作,返回到函数的结果,作为其else条件的结果? //(to_date(r.RENT_RETURN_DATE,'dd-mon-yyyy')-to_date(r.RENT_DUE_DATE,'dd-mon-yyyy')) ----返回一个整数// 当我执行上述查询时,会显示以下错误: 错误报告- SQL错误:ORA-00932:不一致的数据类型:预期CHAR得到编号00932
bind_.bind(function, object, *arguments) 绑定函数 function 到对象 object 上, 也就是无论何时调用函数, 函数里的 this 都指向这个 object.任意可选参数 arguments 可以传递给函数 function , 可以填充函数所需要的参数,这也被称为 partial application。对于没有结合上下文的partial ap
但是,当我使用命令行中的ndk-build命令编译它时,会出现以下错误: Android NDK:APP_PLATFORM未设置。默认为最小支持版本Android-16。[arm64-v8a]编译:com_celik_abdullah_imageprocessingpart_processors_NativeImageProcessor<=com_celik_Abdullah_ImageProce
我遇到了一个家庭作业的麻烦,创建一个调用另一个类的方法的类。给我们下一课: 然后给出以下提示: 实现一个类Portfolio。这个类有两个对象,checking和savings,类型为BankAccount。实现四种方法: 公用无效存款(双倍金额,字符串帐户) 公开无效提取(双倍金额,字符串帐户) 公有作废转账(双倍金额,字符串账户) 公共双getBalance(字符串帐户) 这里的帐户字符串是“
用户连接RADIUS客户端; RADIUS客户端又连接到RADIUS服务器。如果客户端似乎无法与服务器连接,请首先检查以下内容: FreeRADIUS知道这个客户吗?检查FreeRADIUS日志文件中的以下行: Wed May 18 17:53:57 2012 : Error: Ignoring request to authentication address * port 1812 from