加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

SQL如何使时间与字符串互相转换?

发布时间:2023-06-19 14:44:22 所属栏目:MySql教程 来源:
导读:这篇文章主要讲解了“SQL中日期与字符串怎么互相转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL中日期与字符串怎么互相转换”吧!
这篇文章主要讲解了“SQL中日期与字符串怎么互相转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL中日期与字符串怎么互相转换”吧!
 
一.Oracle日期和字符串互相转换
 
1.1 日期转字符串
 
1.1.1 yyyy年mm月dd日hh34時mi分ss秒
 
手动拼接年月日
 
select
 
      to_char(sysdate, 'yyyy') || '年'
 
   || to_char(sysdate, 'mm') || '月'
 
   || to_char(sysdate, 'dd') || '日'
 
   || ' '
 
   || to_char(sysdate, 'hh34') || '時'
 
   || to_char(sysdate, 'mi') || '分'
 
   || to_char(sysdate, 'ss') || '秒'
 
from
 
  dual
 
结果
 
2021年09月08日
 
1.1.2 yyyy-mm-dd hh34:mi:ss
 
日期不去掉0,并且以24小时制显示
 
select
 
  to_char(sysdate, 'yyyy-mm-dd hh34:mi:ss')
 
from
 
  dual
 
结果
 
2021-09-08 11:12:02
 
1.1.3 yyyyfm-mm-dd hh34:mi:ss
 
日期去掉0,并且以24小时制显示
 
select
 
  to_char(sysdate, 'yyyyfm-mm-dd hh34:mi:ss')
 
from
 
  dual
 
结果
 
2021-9-8 11:21:55
 
1.1.4 yyyy/mm/dd
 
只显示年月日,并且有分隔符
 
select
 
  to_char(sysdate, 'yyyy/mm/dd')
 
from
 
  dual
 
结果
 
2021/09/08
 
1.1.5 yyyymmdd
 
只显示年月日,没有分隔符
 
select
 
  to_char(sysdate, 'yyyymmdd')
 
from
 
  dual
 
结果
 
20210908
 
1.2 字符串转日期
 
使用to_date(‘日期’, ‘格式’)函数,具体格式和to_char()中的格式相同
 
select
 
  to_date('20210908', 'yyyymmdd')
 
from
 
  dual
 
结果
 
2021/09/08 0:00:00
 
select
 
  to_date('2021-9-8 11:21:55', 'yyyyfm-mm-dd hh34:mi:ss')
 
from
 
  dual
 
结果
 
2021/09/08 11:21:55
 
二. SqlServer日期和字符串互相转换
 
2.1日期转字符串
 
2.1.1 yyyy/mm/dd
 
SELECT
 
  CONVERT(varchar (100), GETDATE(), 111)
 
结果
 
2021/09/08
 
2.1.2 yyyy-mm-dd
 
SELECT
 
  CONVERT(varchar (100), GETDATE(), 23)
 
结果
 
2021-09-08
 
2.1.3 yyyymmdd
 
SELECT
 
  CONVERT(varchar (100), GETDATE(), 112)
 
结果
 
20210908
 
2.1.4 yyyy-mm-dd hh:mm:ss
 
SELECT
 
  CONVERT(varchar (100), GETDATE(), 120)
 
结果
 
2021-09-08 12:30:33
 
2.1.5 yyyy年mm月dd日
 
select
 
    CONVERT(varchar, DATEPART(yy, GETDATE())) + '年'
 
  + CONVERT(varchar, DATEPART(mm, GETDATE())) + '月'
 
  + CONVERT(varchar, DATEPART(dd, GETDATE())) + '日'
 
结果
 
2021年9月8日
 
2.2 字符串转日期
 
CAST(‘字符串日期’ as ‘数据类型-一般为date或者datetime’)
 
如果字符串日期并不是合法的日期的话,会报错
 
TRY_CAST(‘字符串日期’ as ‘数据类型-一般为date或者datetime’)
 
尝试将字符串日期转换为日期类型,如果转换失败的话,会返回NULL
 
SELECT
 
  CAST('20200908' as datetime)
 
结果
 
2020/09/08 0:00:00
 
SELECT
 
  CAST('20200908' as date)
 
结果
 
2020/09/08
 
SELECT
 
  TRY_CAST('2021-09-08' as datetime)
 
结果
 
2021/09/08 0:00:00
 
SELECT
 
  TRY_CAST('2021/09/08 11:21:55' as datetime)
 
结果
 
2021/09/08 11:21:55
 
三.Mysql日期和字符串互相转换
 
参考资料: MySQL中日期时间类型与格式化
 
3.1 日期转字符串
 
DATE_FORMAT( )函数
 
3.1.1 yyyy年mm月dd日 hh时ii分ss秒
 
SELECT
 
DATE_FORMAT(NOW(), '%Y年%m月%d日 %H时%i分%s秒' );
 
结果
 
2021年09月08日 21时04分59秒
 
3.1.2 yyyy-mm-dd hh:ii:ss
 
SELECT
 
DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s')
 
3.2 字符串转日期
 
STR_TO_DATE函数
 
SELECT
 
STR_TO_DATE('2019年01月17日 19时05分05秒', '%Y年%m月%d日 %H时%i分%s秒');
 
结果
 
2019-01-17 19:05:05
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!