[20241222]关于日期输出格式问题.txt --//https://connor-mcdonald.com/ 网站写了一系列相关blog,命名为Kris Kringle系列。 --//其中链接提到的例子https://connor-mcdonald.com/2024/12/21/kris-kringle-the-database-what-day-is-it/ --//重复测试: 1.环境: SCOTT@book01p> @ ver2 ============================== PORT_STRING : x86_64/Linux 2.4.xx VERSION : 21.0.0.0.0 BANNER : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production BANNER_FULL : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production Version 21.3.0.0.0 BANNER_LEGACY : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production CON_ID : 0 PL/SQL procedure successfully completed. 2.测试: SCOTT@book01p> select '~'||to_char(sysdate,'DAY')||'~' from dual; '~'||TO_CHAR(SY --------------- ~SUNDAY ~ --//实际上输出是char类型,注意结尾有空格,占用9个字符。规避后面的空格要加入FM。 SCOTT@book01p> select '~'||to_char(sysdate,'FMDAY')||'~' from dual; '~'||TO_CHAR(SY --------------- ~SUNDAY~ --//实际上在输出格式上还有一些细节,看下面的例子: $ echo {D,d}{A,a}{Y,y} DAY DAy DaY Day dAY dAy daY day $ echo set feed off head off ; echo -e {D,d}{A,a}{Y,y}"\n" | xargs -IQ echo "select 'Q',to_char(sysdate,'Q') from dual ;" set feed off head off select 'DAY',to_char(sysdate,'DAY') from dual ; select 'DAy',to_char(sysdate,'DAy') from dual ; select 'DaY',to_char(sysdate,'DaY') from dual ; select 'Day',to_char(sysdate,'Day') from dual ; select 'dAY',to_char(sysdate,'dAY') from dual ; select 'dAy',to_char(sysdate,'dAy') from dual ; select 'daY',to_char(sysdate,'daY') from dual ; select 'day',to_char(sysdate,'day') from dual ; $ (echo set feed off head off ; echo -e {D,d}{A,a}{Y,y}"\n" | xargs -IQ echo "select 'Q' str ,to_char(sysdate,'Q') to_c from dual ;")| sqlplus -s -l / as sysdba | sed '/^$/d' DAY MONDAY DAy MONDAY DaY Monday Day Monday dAY monday dAy monday daY monday day monday --//自己可以总结其中的差别: --//1.格式前面2个字符大写的,输出全部大写。 --//2.格式第1个字符大写的,第2个小写的,输出第1个字符大写,其他小写。 --//3.格式第1个字符小写的,输出全部小写。 --//这些大概属于英语的习惯用法。 3.画外: --//之所以提及这些问题,最近正好在优化一个项目,我发现写代码看谓词出现类型如下情况: TO_CHAR (SCHEDULED_DATE_TIME, 'yyyyMMdd') = TO_CHAR (SYSDATE, 'yyyyMMdd') OR (START_DATE_TIME >= :startTime AND START_DATE_TIME <= :endTime) --//视乎是对方的一种编程风格,T大写视乎很容易看出前面start,end是否写错。 --//前面的MM例子也是这样,也许这样容易看清前面的y有4个。 > @ sql_id a5a47dnwfd100 -- SQL_ID = a5a47dnwfd100 come from shared pool SELECT d.label as dept,substr(t.RECORDDATE,0,10) as 日期,count (*) AS 人数 FROM TEMPERATURE t left join s_departments d on d.CODE=t.dept where to_date(t.RECORDDATE,'yyyy-MM-dd hh24:mi:ss')+7 >sysdate and value >=37.3 GROUP by d.label,substr(t.RECORDDATE,0,10) order by substr(t.RECORDDATE,0,10) desc; --//我不知道为什么,大部分代码出现的格式中间的MM都是选择大写,感觉很怪异,当然也许是编写者的一个风格。 --//不过关于谓词使用函数,这些已经讲了许多次,还是有人这样写,当然建立函数索引问题就可以解决(最后1个不行),看着这样开发 --//人员不不知道是同情还是鄙视,如果没人指出,写一辈子代码还是这样,那真是一种悲哀!!
[20241222]关于日期输出格式问题.txt
来源:这里教程网
时间:2026-03-03 21:05:23
作者:
编辑推荐:
- [20241222]关于日期输出格式问题.txt03-03
- 数据库管理-第271期 Oracle 23ai:用MongoDB的方式来操作JSON二元性(20241214)03-03
- 属实有点“爱”了!EMCC 24ai重磅发布了03-03
- 乳制品03-03
- 乳糖酶补充剂怎么用效果最好?03-03
- 乳糖不耐受除了服用乳糖酶,还有其他饮食调整建议吗?03-03
- 长沙家具黑糖云朵闭眼入,不挑户型不挑风格03-03
- putty好用,putty好用体现在哪些方面03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 数据库管理-第271期 Oracle 23ai:用MongoDB的方式来操作JSON二元性(20241214)
- 属实有点“爱”了!EMCC 24ai重磅发布了
属实有点“爱”了!EMCC 24ai重磅发布了
26-03-03 - putty好用,putty好用体现在哪些方面
putty好用,putty好用体现在哪些方面
26-03-03 - 如何正确饲养动物
如何正确饲养动物
26-03-03 - EMC 存储两块盘亮黄灯,数据库为oracle
EMC 存储两块盘亮黄灯,数据库为oracle
26-03-03 - Oracle-Java JDBC 连接超时之后的认知纠正
Oracle-Java JDBC 连接超时之后的认知纠正
26-03-03 - 电脑的云存储,电脑的云存储是什么
电脑的云存储,电脑的云存储是什么
26-03-03 - iterm2 mac,iterm2 mac是什么
iterm2 mac,iterm2 mac是什么
26-03-03 - Oracle ADG 报错ORA-38784 ORA-01110 ORA-01565 ORA-27037
- 家庭电脑设置云存储空间,家庭电脑设置云存储空间是什么
家庭电脑设置云存储空间,家庭电脑设置云存储空间是什么
26-03-03
