sqlserver日期格式转换yyyymmdd_【SQL常用函数】 第二集 转换函数

看完这章你会学到以下内容

  • 转换函数有那几种,通常用得最多的是那个?
  • 为什么要用转换函数?
  • 各自转换的关系,适用条件是什么?

数据类型有三类:数字,字符,日期
对应就用转换它们三种类型的函数 :转换函数!

To_Date 转日期Date 强制转换,里面一定要有'-'才能转换,数字只会出现错误,例如:

12a77a3075cc7ba3b1468a46ecaca36f.png
  SELECT DATE'2019-01-01' FROM DUAL;  --- 强制转换为日期格式
  SELECT TO_DATE('2019-01-01','YYYY/MM/DD') FROM DUAL;
  SELECT TO_DATE('2019-01-01','YYYY-MM-DD') FROM DUAL;
  SELECT TO_DATE('2019-01-01','YYYYMMDD') FROM DUAL;  ---- 错误, 日期转换只有以上两种形式
  

   注意:字符或数字中的年月日必须是日期范围内的值
   SELECT TO_DATE('2019-13-08','YYYY-MM-DD'),  -- 月份不对
		  TO_DATE(20190732,'YYYY-MM-DD')       -- 天数不对
	 FROM DUAL;
   -- 字符日期中有-或/转化为日期类型必须加-或/   
   SELECT TO_DATE('2019-07-08','YYYYMMDD'), -- 错误
		  TO_DATE(20190708,'YYYY-MM-DD')  FROM DUAL;   --- 成功	

11c2daed19f2597d2882f4b0775c1237.png

dfc9320f195e9009285d3bf2553af0a4.png

6c0e8210023a93d9af0d2596f8f8035e.png

To_Char() 转换为字符

 SELECT TRUNC(TO_DATE(SYSDATE),'Y') FROM DUAL;
  SELECT TO_CHAR(DATE'2019-08-30','YYYY'),   -- '2019'
       TO_CHAR(DATE'2019-08-30','YYYYMM'), -- '201908'
       TO_CHAR(DATE'2019-08-30','WW'),     -- '35'  第35周
       TO_CHAR(DATE'2019-08-30','IW'),     -- '35'  第35周(自然周)
       TO_CHAR(DATE'2019-08-30','Q'),      -- '3'   第3季度
       TO_CHAR(DATE'2019-08-30','MM'),     -- '08'
       TO_CHAR(DATE'2019-08-30','DD'),     -- '30'
       TO_CHAR(DATE'2019-08-30','D')       -- '6'   当周的第几天(星期天为第一天)
    FROM DUAL;

4a9e9d639b339f1ff78a8e2231f13d15.png

To_Number() 转化为数字

       SELECT TRUNC(TO_DATE(SYSDATE),'Y') FROM DUAL;
       SELECT TO_CHAR(DATE'2019-08-30','YYYY'),   -- '2019'
       TO_CHAR(DATE'2019-08-30','YYYYMM'), -- '201908'
       TO_CHAR(DATE'2019-08-30','WW'),     -- '35'  第35周
       TO_CHAR(DATE'2019-08-30','IW'),     -- '35'  第35周(自然周)
       TO_CHAR(DATE'2019-08-30','Q'),      -- '3'   第3季度
       TO_CHAR(DATE'2019-08-30','MM'),     -- '08'
       TO_CHAR(DATE'2019-08-30','DD'),     -- '30'
       TO_CHAR(DATE'2019-08-30','D')       -- '6'   当周的第几天(星期天为第一天)
    FROM DUAL;

PS: 日期转数字的话:先转为字符,然后再转发为数字,最后是靠右显示。

2d597ba36a08fa0194d8916fbb94ba77.png
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值