oracle 存储的日期数据类型 date
后台存储固定7个字节,分别记录公元前/后、年、月、日、小时、分、秒
前台显示,是通过格式掩码进行控制,显示出现中文是格式掩码的问题,与后台存储是没有关系的
调整时间格式掩码,就可以按照自己想要的方式进行输出
后台存储固定7个字节,分别记录公元前/后、年、月、日、小时、分、秒
前台显示,是通过格式掩码进行控制,显示出现中文是格式掩码的问题,与后台存储是没有关系的
调整时间格式掩码,就可以按照自己想要的方式进行输出
这种形式都出现中文。第一次接触 oracle
---------------------------------------------------------------------------
01-7月 -14 07.50.00.000000000 下午SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';会话已更改。SQL> select to_timestamp('2014-07-01 19:50:00','yyyy-mm-dd hh24:mi:ss') from dual;TO_TIMESTAMP('2014-07-0119:50:00','YYYY-MM-DDHH24:MI:SS')
---------------------------------------------------------------------------
01-7月 -14 07.50.00.000000000 下午SQL> select to_date('2014-07-01 19:50:00','yyyy-mm-dd hh24:mi:ss') from dual;TO_DATE('2014-07-01
-------------------
2014-07-01 19:50:00SQL>
sql = " ... to_timestamp('" & dt.ToString("yyyy-MM-dd HH:mm:ss") & "','yyyy-mm-dd hh24:mi:ss')..."最好的做法是通过 OracleCommand 的参数来传值,就可以避免拼SQL的字符串格式转换问题。
例如,systimestamp是timestamp类型的当前时间戳
可以比较一下select to_char(systimestamp,'yyyy-mm-dd hh12:mi:ssxff6 AM'),
to_char(systimestamp,'yyyy-mm-dd hh12:mi:ssxff6 AM','NLS_DATE_LANGUAGE = American'),
to_char(systimestamp,'yyyy-mm-dd hh12:mi:ssxff6 AM','NLS_DATE_LANGUAGE = ''SIMPLIFIED CHINESE''') from dual;