Oracle数据库中日期格式的转换
Oracle数据库中日期格式的转换1. 问题由来从Oracle中读取日期字段,出现的日期格式相当反人类。所以必须转化一下。并且php的date(‘Y-m-d’,strtotime($date_str))虽然功能强大,但是strtotime()只能将英文文本的日期时间描述解析为 UNIX 时间戳,然后转化为格式化后的date字符串。 2. 解决方案捣鼓了很久。我对Oracle还是一个萌新,本来是想有什么法子可以直接设置Oracle 默认日期显示格式。 /** * 将 '11-12月-16 01.53.16.674000 上午 +08:00' * 转化为 '2016-12-11 01:53:16' */
function timeFormat($src) {
$reg='/(?<d>d{2})-(?<m>d{1,2})月s*-(?<y>d{2})s*(?<h>d{1,2}).(?<i>d{1,2}).(?<s>d{1,2})[.ds]*(?<z>.*?)午.*?/';
preg_match($reg,$src,$m);
if($m['z'] == '下') $m['h'] += 12;
return date('Y-m-d H:i:s',strtotime($m['y'].'-'.$m['m'].'-'.$m['d'].' '.$m['h'].':'.$m['i'].':'.$m['s']));
}
alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
3. 反面教材:下面是我的捣鼓的过程。不知道哪里不对,如果大牛能够指正就更好了。
CREATE OR REPLACE TRIGGER TRIG_CHANGE_DATE_FORMAT AFTER LOGON OR SERVERERROR OR STARTUP ON DATABASE BEGIN -- EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_FORMAT = ''YYYY-MM-DD HH24:MI:SS''';
DBMS_SESSION.SET_NLS('NLS_DATE_FORMAT','"YYYY-MM-DD HH24:MI:SS"');
COMMIT;
END TRIG_CHANGE_DATE_FORMAT;
但是,没有任何反应。 alter system set NLS_DATE_FORMAT='YYYY-MM-DD:HH24:MI:SS' scope=spfile;
4. 参考链接
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails – Rails忽略了收集路线,而与show action相反
- ACE反应器(Reactor)模式(4)
- ajax post 请求报错Response to preflight request doesn&#
- SQLite3导入CSV和排除/跳过标题
- flex list拖拽 calculateDropIndex方法的使用
- HQL实现单一 属性与多个属性的查询
- TinyXml Documentation 翻译 TinyXML Tutorial翻译
- Flex 中 DataGridColumn 根据单列返回值,标红需要标红的显
- c# – 为什么在单元测试中无法访问该类?
- c# – Crystal Report:操作尚未实现