如何在SQL中添加日期?

时间:2019-05-30 10:50:34

标签: sql sql-server

如何添加或添加日期?

SELECT DATEADD(month, -1, '2017-08-25') AS DATEADD

错误:

  

Msg 242,第16级,状态3,98行
  将varchar数据类型转换为datetime数据类型会导致超出范围的值。

3 个答案:

答案 0 :(得分:2)

您的查询在SQL Server中正常工作(请参见here)。

您可能拥有奥秘的国际化设置,没有将'2015-08-25'视为YYYY-MM-DD。

有两种选择。您可以删除连字符:

SELECT DATEADD(month, -1, '20170825') AS DATEADD

SQL Server始终将八位数的日期字符串视为日期,格式为YYYYMMDD。

或进行显式转换:

SELECT DATEADD(month, -1, CONVERT(DATE, '2017-08-25', 120)) AS DATEADD

答案 1 :(得分:0)

1-如果您具有列的日期数据类型,则可以直接在日期上添加或替换日期,如下所示

select datecol -1 as sub_op , datecol+1 as sub_op2 from your_table

2-如果要在oracle中将字符串转换为日期,则可以使用以下to_date函数

select to_date('28-May-2019','DD-MM-YYYY') from dual;

如果是mysql

STR_TO_DATE('2013-02-11', '%Y-%m-%d')

答案 2 :(得分:0)

    enter code here

SELECT convert (varchar(15),DATEADD(day, 1, '2017/08/25'),103) AS DateAdd;  -- dd/MM/YYYY only 



SELECT convert (varchar(15),DATEADD(DAY, -1, '2017/08/25'),103) AS DateAdd; -- dd/MM/YYYY

1.year, yyyy, yy = Year
2.quarter, qq, q = Quarter
3.month, mm, m = month
4.dayofyear = Day of the year
5.day, dy, y = Day
6.week, ww, wk = Week
7.weekday, dw, w = Weekday
8.hour, hh = hour
9.minute, mi, n = Minute
10.second, ss, s = Second
11.millisecond, ms = Millisecond