• 部分日期时间函数


    日期时间函数

    SELECT DBTIOMEZONE FROM DUAL;查看数据库时区

    SELECT SYSTIMSTAMP FROM DUAL;查看本地timezone

    SELECT  SESSIONTIMEZONE FROM DUAL;查看会话时区

     

    TIMES TAMP 无时区概念,存什么时间进去,取出来就是什么时间

    TIMES TAMP 时间和时区都被存下来,取数据时能获得当初存储的时间和时区

    TIMES TAMP WITH LOCAL TIME ZONE把输入的时间按database timezone的时区转换后存储时间,取数据时按用户SESSION的时区返回给用户,取出来的时间不带时区格式

    查看三种时间戳格式

    CREATE TABLE T31(

    TIMEDATE DATE,

    TIMEDATE2 TIMESTAMP,

    TIMEDATE3 TIMESTAMP WITH TIME ZONE,

    TIMEDATE4 TIMESTAMP WITH LOCAL TIME ZONE

    );

    INSERT INTO T31 VALUES(SYSDATE,SYSDATE,SYSDATE,SYSDATE);

    SELECT * FROM T31;

    SELECT SESSIONTIMEZONE,CURRENT_DATE FROM DUAL;--当前时间

    SELECT SESSIONTIMEZONE,CURRENT_TIMESTAMP FROM DUAL;--当前时间戳

    SELECT SESSIONTIMEZONE,LOCALTIMESTAMP FROM DUAL;--本地时间戳

    ALTER SESSION

    SET NLS_DATE_FORMAT = ‘DD-MON-YYYY HH24:MI:SS’;

    ALTER SESSION SET TIME_ZONE=’-5:00’; 改变会话时区

    ALTER TABLE EMPLOYEES

    MODIFY HIRE_DATE TIMESTAMP;--把HIRE_DATE改为时间戳格式

    SELECT HIRE_DATE

    FROM EMPLOYEES;

    CREATE TABLE WEB_ORDERS

    (ORDER_DATE TIMESTAMP WITH TIME ZONE,DELIVERY_TIME TIMESTAMP WITH LOCAL TIME ZONE);

    --创建Time zone类型字段

    --创建local time zone类型字段

    ALTER SESSION SET TIME_ZONE=’-6:00’;

    INSERT INTO WEB_ORDERS VALUES --插入时间数据

    (SYSDATE,SYSDATE);

    SELECT * FROM WEB_ORDERS; --查看数据

    SELECT T.EMPNO,T.ENAME

    (SYSDATE-T.HIREDATE) YEAR TO MONTH AS HIRE_YEAR

    FROM SCOTT.EMP T; --将入职年份显示为多少年多少月显示的格式

    INTERVAL 用法

    CREATE TABLE WARRANTY

    (PROD_ID NUMBER,WARRANTY_TIME INTERVAL YEAR(3) TO MONTH);

    INSERT INTO WARRANTY VALUES(123,INTERVAL’9’MONTH)

    SELECT * FROM WARRANTY;

    函数TZ_OFFSET显示时区

    SELECT TZ_OFFSET(‘US/Eastern’) FROM DUAL查看时区

    SELECT TZNAME,TZABBREV,TZ_OFFSET(TZNAME) FROM V$TIMEZONE_NAMES;--查询视图全世界时区名称及时区

    EXTRACT 抽取

    从SYSDATE显示年份.

    SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL;--抽取(只显示)年份

    显示MANAGER_ID为100的员工的HIRE_DATE的月份

    SELECT LAST_NAME,HIRE_DATE,

    EXTRACT(MONTH FROM HIRE_DATE)--抽取月份

    FROM EMPLOYEES

    WHERE MANAGER_ID=100;

    FROM_TZ

    显示TIMESTAMP值‘2000-03-28  08:00:00’时区为‘Australia/North’(澳大利亚/北),TIMESTAMP WITH TIME ZONE值

    SELECT FROM_TZ(TIMESTAMP ‘2000-07-12 08:00:00’,’Austrailia/North’)FROM DUAL;

    TO_TIMESTAMP

    显示字符串’2007-03-06 11:00:00’的TIMESTAMP值

    SELECT TO_TIMESTAMP (‘2007-03-06 11:00:00’,’YYYY-MM-DD HH:MI:SS’)FROM DUAL;

    TO_YMINTERVAL

    显示DEPARTMENT_ID为20的员工的雇佣日期一年零两个月后的日期

    SELECT HIRE_DATE,

    HIRE_DATE+TO_YMINTERVAL(‘01-02’) AS

    HIRE_DATE_YMINTERVAL

    FROM EMPLOYEES

    WHERE DEPARTMENT_ID=20;

  • 相关阅读:
    切片 Slice
    表单与v-model
    vue-内置指令
    go单元测试
    go异常处理
    设计模式
    django数据库事务
    go interface衍生的插件化处理
    goroutine
    drf之序列化
  • 原文地址:https://www.cnblogs.com/kawashibara/p/8963249.html
Copyright © 2020-2023  润新知