
具体 *** 作步骤如下:
1、首先,打开sql,连接到oracle数据库,使用sql语句创建测试表,如下图所示,然后进入下一步。
2、其次,使用sql语句将3行测试数据插入上一步创建的测试表中。使用当前系统时间插入日期字段,如下图所示,然后进入下一步。
3、接着,完成上述步骤后,单击左上角箭头所指“提交”按钮以将更改提交到数据库以保存,如下图所示,然后进入下一步。
4、然后,完成上述步骤后,查询刚刚插入的数据,如下图所示,然后进入下一步。
5、随后,修改第一行中“
Updatedate”字段的值。这时,直接拼接的日期格式的字符串已更新,并且Oracle无法执行,如下图所示,然后进入下一步。
6、接着,修改第一行中“
Updatedate”字段的值,将字符串的版本日期转换为日期类型的权重类型,然后稍后对其进行修改以进行更新,如下图所示,然后进入下一步。
7、最后,修改第一行中Updatedate字段的值,使用当前日期减去一年就可以了,如下图所示。这样,问题就解决了。
如果日期写在A1单元格,想在B1单元格得出该日期减去一年的日期,
则B1单元格写入公式:
公式一
=DATE(YEAR(A1)-1,MONTH(A1),DAY(A1))
如图:
公式二
=EDATE(A1,-12)
再设置单元格格式为日期格式中的一种。
如图:
注:EDATE函数的定义
返回代表指定日期 (start_date) 之前或之后用于指示月份数的日期的序列号。使用函数 EDATE 可以计算与发行日处于一月中同一天的到期日的日期。
如果该函数不可用,并返回错误值 #NAME?,请安装并加载“分析工具库”加载宏。
语法
EDATE(start_date,months)
Start_date 为一个代表开始日期的日期。应使用 DATE 函数来输入日期,或者将日期作为其他公式或函数的结果输入。例如,使用函数 DATE(2008,5,23) 输入日期 2008 年 5月 23 日。如果将日期以文本的形式输入,则会出现问题。
Month 为 start_date 之前或之后的月数。正数表示未来日期,负数表示过去日期。
说明
Microsoft Excel 可将日期存储为用于计算的序列号。默认情况下,1900 年 1 月 1 日的默认序列号是 1 而 2008 年 1 月 1 日的默认序列号是 39448,这是因为它距1900 年 1 月 1 日有 39448 天。Microsoft Excel for the Macintosh 使用另外一个默认日期系统。
如果 start_date 不是有效日期,函数 EDATE 返回错误值 #VALUE!。
如果 months 不是整数,将截尾取整。
1、取出extract函数选定日期的年部分,然后-1,在连接上月就行了1) 取出系统日期的年部分: extract(year from sysdate)
2) 将取出的年部分转换成数字类型,然后减1就是上一年了
to_number(extract(year from sysdate))-1
3)取出系统日期的月份不:extract(month from sysdate)
4)与之前的上一年份相连即可
select (to_number(extract(year from sysdate))-1) || '' || extract(month from sysdate) from dual
2、使用to_char实现
1)将日期类型转换为字符类型,并取出年部分to_CHAR(sysdate,'yyyy')
2)将取出的年部分转换成数字类型,然后减1就是上一年了
to_number( to_CHAR(sysdate,'yyyy'))-1
3)将日期类型转换为字符类型,并取出月部分to_CHAR(sysdate,'MM')
4)与之前的年部分相连即可
select (to_number( to_CHAR(sysdate,'yyyy'))-1) || '-' || to_CHAR(sysdate,'MM') FROM DUAL
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)