合 Oracle的时区问题Time Zone
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | -- 查询数据库的时区 SELECT DBTIMEZONE FROM DUAL; SELECT property_name, property_value FROM database_properties WHERE property_name='DBTIMEZONE'; SELECT name, value$ FROM props$ WHERE name='DBTIMEZONE'; -- 查询时区文件支持的时区 SELECT * FROM V$TIMEZONE_NAMES; -- 查询SESSION中设置的时区 SELECT SESSIONTIMEZONE FROM DUAL; -- 在SESSION级别设置时区 ALTER SESSION SET TIME_ZONE = local; ALTER SESSION SET TIME_ZONE = dbtimezone; ALTER SESSION SET TIME_ZONE = '-05:00'; ALTER SESSION SET TIME_ZONE = 'Europe/London'; -- 或者 $ ORA_SDTZ='OS_TZ' $ export ORA_SDTZ $ ORA_SDTZ='-05:00' $ export ORA_SDTZ -- 设置数据库的时区 CREATE DATABASE ... SET TIME_ZONE='Europe/London'; -- 或者 (修改后需要重启) ALTER DATABASE SET TIME_ZONE = '-05:00'; ALTER DATABASE SET TIME_ZONE = 'Europe/Lisbon'; -- 查询在指定时区的当地时间 SELECT TZ_OFFSET('Europe/London') FROM DUAL; -- 当前使用的时区文件,如果查询的值接近与700,那么使用的是timezone.dat,如果接近于1300,那么是timezlrg.dat SELECT COUNT(*) FROM v$timezone_names; |