SQL时间格式转换

问题:如何将2023010100:00:00转换成2023-01-01 00:00:00或者2023/01/01 00:00:00呢?\n\n时间转换比较常用有获取当前日期利用convert来转换成我们需要的datetime格式,比较常见的有:\n\nselect CONVERT(varchar(12) , getdate(), 112 ) —20230101\n\nselect CONVERT(varchar(12) , getdate(), 108 ) —00:00:00\n\nselect CONVERT(varchar(12) , getdate(), 120 ) —2023-01-01 00:00:00\n\n一开始以为把时间带入120getdate转换就好了,实则是不可以这样子的,只有取当前时间才能通过这个转换。所以我们需要用到substring截断: substring(rq,1,4)+’-‘+substring(rq,5,2)+’-‘+substring(rq,7,2)+’ ‘+substring(rq,9,2)+’:’+substring(rq,12,8) substring(rq,1,4)的意思是从左边第一个数据开始,取4位数即2023。然后就把2023010100:00:00拆分开来再通过要求的格式通过+拼接起来即可。