已知月份201201 如何在SQL中体现201201的上一月并用同样的格式表式

作者&投稿:豆卢尚 (若有异议请与网页底部的电邮联系)
SQL数据库中,如何把日期型字段的值加上1个月~

sql语句为:update 表 set 日期字段=dateadd(m,1,日期字段)
定义和用法
DATEADD() 函数在日期中添加或减去指定的时间间隔。
语法
DATEADD(datepart,number,date)

date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。

下面以比较流行的mysql图形化管理工具Navicat为例,其他工具或者在命令行中以及编程语言中操作时的执行的sql语句是一样的。
1、假设在数据库中有一个名为testtest的表格,表格内容如下图所示,表中有三条记录是9月份的

2、打开一个查询窗口,输入查询语句select * from testtest where month(date)='9';,该语句表示查询testtest表格中9月份的记录

3、点击“运行”执行该sql语句,在下方可以看到已经查询到了9月份的三条记录

4、如需按年查询可输入select * from testtest where year(date)='2017';,2017代表需要查询的年份。如下图所示只查询到了一条记录是2017年的

可以这样:先转换成当月一号取得上月1号的日期再转换成年月,如下
select left(convert(varchar(20),dateadd(month,-1,cast('201202' + '01' as datetime)),112),6)