• 回答数

    4

  • 浏览数

    167

南梵
首页 > 计算机类考试 > sql语句怎么来对日期进行相加减?

4个回答 默认排序
  • 默认排序
  • 按时间排序

雪姬

已采纳
1分钟前发布 -【sql语句怎么来对日期进行相加减?】http://www.sdrsks.org/ask 09月25日讯: sql语句怎么来对日期进行相加减?在sql server里可以使用:where start_date =to_date('2005-12-09', 'yyyy-mm-dd') ;oracle中没有定义和sql server中一样的DateAdd函数, oracle可以通过interval 'n' year/month/day/hour/minute/second/second(p,s)的方式来增减时间下面是自己在oracle中写的DateAdd函数函数调用基本同sql server一样, 不过datepart部分需要以字符串的方式输入, 即DateAdd(d,1,to_date('2005-12-09','yyyy-mm-dd'))要改为DateAdd('d',1,to_date('2005-12-09','yyyy-mm-dd'))函数定义如下函数中的注释是datepart的新说明, 与sql server中的略有不同)create or replace function DATEADD( datepart varchar2, num number, indate date ) return date isResult date;v_sql varchar2(1000);v_datepart varchar2(30);v_ms varchar2(13);beginv_datepart := lower(datepart);/*Datepart Abbreviationsyear yy, yquarter qq, qmonth mm, mday dd, dweek wk, whour hh, hminute mi, nsecond ss, smillisecond ms*/casewhen v_datepart in ('year','yy','y') thenv_sql := 'select :1 + interval '''||num||''' year from dual';when v_datepart in ('quarter','qq','q') thenv_sql := 'select :1 + (interval ''3'' month) * '||num||' from dual';when v_datepart in ('month','mm','m') thenv_sql := 'select :1 + interval '''||num||''' month from dual';when v_datepart in ('week','wk','w') thenv_sql := 'select :1 + (interval ''7'' day) * '||num||' from dual';when v_datepart in ('day','dd','d') thenv_sql := 'select :1 + interval '''||num||''' day from dual';when v_datepart in ('hour','hh') thenv_sql := 'select :1 + interval '''||num||''' hour from dual';when v_datepart in ('minute','mi','n') thenv_sql := 'select :1 + interval '''||num||''' minute from dual';when v_datepart in ('second','ss','s') thenv_sql := 'select :1 + interval '''||num||''' second from dual';when v_datepart in ('millisecond','ms') thenv_ms := to_char(num/1000,'fm999999990.000');v_sql := 'select :1 + interval '''||v_ms||''' second(9,3) from dual';elseRAISE_APPLICATION_ERROR(-20001, ''''||datepart||''' is not a recognized dateadd option.' );end case;execute immediate v_sql into Result using indate;return(Result);EXCEPTIONWHEN OTHERS THENRAISE ;end DATEADD;
55 评论

勉强喜欢

已采纳
达梦数据库还原数据库的sql语句怎么写?SQL语句备份和恢复SQL Server:备份命令:BACKUP DATABASE testTO disk = 'c:\test'WITH FORMAT,NAME = 'Full Backup of MyNwind'
8 评论

五月我遇你

已采纳
sql语句怎么查询createtime的日期?基本的查询语句为:SELECT 查询字段 FROM 对象表WHERE 条件限定;因此在查询createtime时,根据需要从对象表取出该字段。//从product表中 选出字段 createtime;例:select createtime from product;在实际情况下,可根据需要进行条件限定。
43 评论

煙花易涼

已采纳
JDBC中要条件查询timestamp类型字段的sql语句怎么写?在实现类中查询数据库后,往对象中设置值的时候用getTimestamp如名setPubtime,rs.getTimestamp1。1、每个数据库都有一个计数器,当对数据库中包含timestamp列的表执行插入或更新操作时,该计数器值就会增加,该计数器是数据库时间戳,这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。2、一个表只能有一个timestamp列,每次修改或插入包含timestamp列的行时,就会在timestamp列中插入增量数据库时间戳值,使用某一行中的timestamp列可以很容易地确定该行中的任何值自上次读取以后是否发生了更改。3、如果对行进行了更改,就会更新该时间戳值,如果没有对行进行更改,则该时间戳值将与以前读取该行时的时间戳值一致,你如果是要返回数据库的当前时间戳值,可以使用DBTS返回当前数据库最后使用的时间戳值,插入或更新包含 timestamp列的行时,将产生一个新的时间戳值。
92 评论

相关问答

  • 在ACCESS中如何用更新查询,将表中的出生日期增加30天?

    在ACCESS中如何用更新查询,将表中的出生日期增加30天?UPDATE 表1 SET 表1.出生日期 = [表1]![出生日期]+30假设你的表名字叫做 表1

    闻风老 4人参与回答 2024-09-25
  • access中iif函数套用时间函数的问题?

    access中iif函数套用时间函数的问题?楼主的表达式“iif([机加完成]=-1,now(),null)”在语法上完全正确、没有问题,按理是可以实现的。在ACCESS里该表达式运行不成功,应该受到其他原因影响所致。导致不成功的原因很多,这里很难一一列举。请告知该表达式使用的环境(例如窗体还是查询里等等)、报错提示信息等,以便做进一步分析。

    蹲街守寂寞 4人参与回答 2024-09-25
  • access中报表和表的区别?

    access中报表和表的区别?在 Microsoft Access 中,报表和表是不同的数据库对象。表是一种用于存储数据的数据结构,它可以包含各种不同类型的数据,例如文本、数字、日期等。表是数据库的核心,它是其他数据库对象(如查询、窗体、报表等)的基础。报表是一种用于以表格、图表、图形等形式显示表中数据的对象。报表可以根据不同的需求进行定制,例如按照特定的条件筛选数据、按照特定的顺序排列数据、添加

    北霸天 4人参与回答 2024-09-25
  • access定义了哪12种数据类型?

    access定义了哪12种数据类型?登录accesAccess中定义了12种数据类型:文本备注;数字;日期/时间;货币;自动编号;是/否;OLE 对象;超链接;查阅向导;计算字段;附件。1.文本文本类型字段用于保存字符串的数据,例如:姓名、产品名称、通讯地址等等。一些只作为字符用途的数字数据也使用文本类型,例如:电话号码、产品编号、邮政编码等等。文本类型字段的大小最大为 255 个字符。可通过&l

    清风饮酒 4人参与回答 2024-09-25
  • 2021年中级医师职称报名条件及时间?

    2021年中级医师职称报名条件及时间?2021年中级卫生职称考试报名时间:2020年12月29日-2021年1月11日进行报名,医师考试2021年报名条件:1、参加临床医学专业中级资格考试的人员,应具备下列基本条件:(1)遵守中华人民共和国的宪法和法律;(2)遵守《中华人民共和国执业医师法》,并取得执业医师资格;(3)具备良好的医德医风和敬业精神;(4)已实施住院医师规范化培训的医疗机构的医师须取

    陽光比我耀眼 4人参与回答 2024-09-25