sql中 如何将201610转换为2016-10 即把6位数字转换为日期格式
答案:1 悬赏:0
解决时间 2021-02-22 02:33
- 提问者网友:美人性情
- 2021-02-21 18:49
sql中 如何将201610转换为2016-10 即把6位数字转换为日期格式
最佳答案
- 二级知识专家网友:独行浪子会拥风
- 2021-02-21 19:45
你这也不叫日期格式,完整的日期格式是带年月日,或者年月日时分秒的,你这顶多算年份和月份之间加个横线
看具体什么数据库了,mysql如下:
select concat(substring(字段名,1,4),'-',substring(字段名,5,2)) from 表名sqlserver如下:
select substring(字段名,1,4)+'-'+substring(字段名,5,2) from 表名oracle如下:
select substr(字段名,1,4)||'-'||substr(字段名,5,2) from 表名追答
追问:要求是根据某个月,查询其上个月的数据,但是数据库中,某月份是以6位数保存的,所以不知道怎么来实现
追答:具体什么数据库呢?
追问:SqlServer
追答:稍等,写完发上来,过个十来分钟你刷新下页面吧,就是给定某个月,格式为201610这样格式的,能查询上一个月呗?
追问:恩 是的
追答:select replace(substring(cast(dateadd(m,-1,cast(你的那个日期字段+'01' as date)) as varchar),1,7),'-','') from 表名
基本用到的就是dateadd函数,用法你可以百度一下,这样就是上个月的月份了,跨年的也没问题,可自己试试
追问:恩月份已经可以了,剩下的我自己去修改一下 ^_^
看具体什么数据库了,mysql如下:
select concat(substring(字段名,1,4),'-',substring(字段名,5,2)) from 表名sqlserver如下:
select substring(字段名,1,4)+'-'+substring(字段名,5,2) from 表名oracle如下:
select substr(字段名,1,4)||'-'||substr(字段名,5,2) from 表名追答
追问:要求是根据某个月,查询其上个月的数据,但是数据库中,某月份是以6位数保存的,所以不知道怎么来实现
追答:具体什么数据库呢?
追问:SqlServer
追答:稍等,写完发上来,过个十来分钟你刷新下页面吧,就是给定某个月,格式为201610这样格式的,能查询上一个月呗?
追问:恩 是的
追答:select replace(substring(cast(dateadd(m,-1,cast(你的那个日期字段+'01' as date)) as varchar),1,7),'-','') from 表名
基本用到的就是dateadd函数,用法你可以百度一下,这样就是上个月的月份了,跨年的也没问题,可自己试试
追问:恩月份已经可以了,剩下的我自己去修改一下 ^_^
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯