SQL Server DATEADD() 函数
定义和用法
DATEADD() 函数在日期中添加或减去指定的时间间隔。
语法
DATEADD(datepart,number,date)
date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
datepart 参数可以是下列的值:
datepart 缩写
年 yy, yyyy
季度 qq, q
月 mm, m
年中的日 dy, y
日 dd, d
周 wk, ww
星期 dw, w
小时 hh
分钟 mi, n
秒 ss, s
毫秒 ms
微妙 mcs
纳秒 ns
------实例:转移超2小时未接收
SELECT SFCTC.TC001 as 转移单别,SFCTC.TC002 as 转移单号,SFCTB.TB015 AS 单据日期,
SFCTC.TC047 as 产品品号,SFCTC.TC048 as 产品品名,SFCTC.TC032 as 生产批号,
SFCTC.TC004 as 工单单别,SFCTC.TC005 as 工单单号,SFCTB.TB005 as 移出地,
B.MW002 AS 移出工艺名称, SFCTB.TB006 as 移出地名称,SFCTC.TC006 as 移出工序,
SFCTC.TC007 as 移出工艺,SFCTB.TB008 as 移入地,SFCTB.TB009 as 移入地名称,
SFCTC.TC008 as 移入工序,SFCTC.TC009 as 移入工艺,CMSMW.MW002 as 移入工艺名称,
SFCTC.TC010 as 单位,SFCTC.TC036 as 数量
FROM SFCTC as SFCTC
Left JOIN SFCTB as SFCTB On SFCTC.TC001=SFCTB.TB001 and SFCTC.TC002=SFCTB.TB002
Left JOIN CMSMW as CMSMW On SFCTC.TC009=CMSMW.MW001
Left JOIN CMSMW as B On SFCTC.TC007=B.MW001
WHERE ((SFCTC.TC001 like 'D2%') AND (SFCTC.TC022 = 'N'))
AND dateadd(hour,2,(SUBSTRING(SFCTC.CREATE_DATE,1,4)+'-'+SUBSTRING(SFCTC.CREATE_DATE,5,2)+'-'+SUBSTRING(SFCTC.CREATE_DATE,7,2)+''+SUBSTRING(SFCTC.CREATE_DATE,9,2)+':'+SUBSTRING(SFCTC.CREATE_DATE,11,2)))<getdate()
SQL Date 函数
SQL 日期(Dates)
当我们处理日期时,最难的任务恐怕是确保所插入的日期的格式,与数据库中日期列的格式相匹配。
只要您的数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间部分,情况就有点复杂了。
在讨论日期查询的复杂性之前,我们先来看看最重要的内建日期处理函数。
MySQL Date 函数
下面的表格列出了 MySQL 中最重要的内建日期函数:
函数描述NOW()返回当前的日期和时间CURDATE()返回当前的日期CURTIME()返回当前的时间DATE()提取日期或日期/时间表达式的日期部分EXTRACT()返回日期/时间的单独部分DATE_ADD()向日期添加指定的时间间隔DATE_SUB()从日期减去指定的时间间隔DATEDIFF()返回两个日期之间的天数DATE_FORMAT()用不同的格式显示日期/时间
SQL Server Date 函数
下面的表格列出了 SQL Server 中最重要的内建日期函数:
函数描述GETDATE()返回当前的日期和时间DATEPART()返回日期/时间的单独部分DATEADD()在日期中添加或减去指定的时间间隔DATEDIFF()返回两个日期之间的时间CONVERT()用不同的格式显示日期/时间
SQL Date 数据类型
MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:
DATE - 格式:YYYY-MM-DD
DATETIME - 格式:YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式:YYYY-MM-DD HH:MM:SS
YEAR - 格式:YYYY 或 YY
SQL Server 使用下列数据类型在数据库中存储日期或日期/时间值:
DATE - 格式:YYYY-MM-DD
DATETIME - 格式:YYYY-MM-DD HH:MM:SS
SMALLDATETIME - 格式:YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式:唯一的数字
注释: 当您在数据库中创建一个新表时,需要为列选择数据类型!
如需了解所有可用的数据类型,请访问我们完整的 数据类型参考手册。
SQL 日期处理
如果不涉及时间部分,那么我们可以轻松地比较两个日期!
假设我们有如下的 "Orders" 表:
OrderIdProductNameOrderDate1Geitost2008-11-112Camembert Pierrot2008-11-093Mozzarella di Giovanni2008-11-114Mascarpone Fabioli2008-10-29
现在,我们希望从上表中选取 OrderDate 为 "2008-11-11" 的记录。
我们使用下面的 SELECT 语句:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
结果集如下所示:
OrderIdProductNameOrderDate1Geitost2008-11-113Mozzarella di Giovanni2008-11-11
现在,假设 "Orders" 表如下所示(请注意 "OrderDate" 列中的时间部分):
OrderIdProductNameOrderDate1Geitost2008-11-11 13:23:442Camembert Pierrot2008-11-09 15:45:213Mozzarella di Giovanni2008-11-11 11:12:014Mascarpone Fabioli2008-10-29 14:56:59
如果我们使用和上面一样的 SELECT 语句:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
那么我们将得不到结果!这是由于该查询的日期不含有时间部分。
提示: 如果您希望使查询简单且更易维护,那么请不要在日期中使用时间部分!
如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!
相关问答
SQL 时间计算, DATEADD 函数,该怎么解决?DATEADD()函数在日期中添加或减去指定的时间间隔。用法:DATEADD(datepart,number,date)date参数是合法的日期表达式。number是您希望添加的间隔数;对于未来的.....
sql update和 dateadd 函数的使用方法?update语句用于更新表中的记录,语法:UPDATEtable_numSETcolumn1=value1,column2=value2,...WHEREsome_column=some_...
SQL :字符串转换成日期?SELECTDATEADD(S,1160701488+8*3600,'1970-01-0100:00:00')--时间戳转换成普通时间SELECTDATEDIFF(S...
oracle dateadd 函数的使用方法?sql语句为:update表set日期字段=dateadd(m,1,日期字段)定义和用法DATEADD()函数在日期中添加或减去指定的时间间隔。语法DATEADD(datepart,number,da...
my sql dateadd 函数的使用方法?MySQL中没有内置的dateadd函数,可以通过使用DATE_ADD函数实现日期加减的操作。DATE_ADD函数接受三个参数,第一个参数表示需要操作的日期,第二个参数表示需要...
修改 sql 数据库日期-ZOL问答update表名setchecktime=to_date(to_char(sysdate,'yyyy-mm-ddhh24:mi:ss'),'yyyy-mm-ddhh2...
access有关 date 函数的用法?DateDiff(间隔字符,日期1,日期2[,firstdayofweek[,firstweekofyear]])一般使用DateDiff(间隔字符,日期1,日期2)就足够了。...
sqlserver中怎么取当前日期?getdate//获得系统当前日期datepart//获取日期指定部分(年月日时分表)getdate()函数:取得系统当前的日期和时间,返回值为datetime类型的。用法:getdate()....
sql getdate使用方法?sql中getdate()函数的使用:getdate()函数从SQLServer中返回当前的时间和日期,如:1insertintoT3(ID,AddTime)values(2,GETDA...
sql 怎么查询两个时间大于一个月的数据?在SQL中,可以使用日期函数和条件语句来查询两个时间大于一个月的数据。具体的语法和处理方式可能因数据库系统而异,下面给出两个常见数据库系统的示例:1.MyS...