sql,dateadd,datediff

本文转载自MSDN,为了方便访问,谢谢!

DATEADD (Transact-SQL)

http://msdn.microsoft.com/zh-cn/library/ms186819.aspx

将指定 number 时间间隔(有符号整数)与指定 date 的指定 datepart 相加后,返回该 date

有关所有 Transact-SQL 日期和时间数据类型及函数的概述,请参阅日期和时间数据类型及函数 (Transact-SQL)。有关日期和时间数据类型及函数共有的信息和示例,请参阅使用日期和时间数据。

主题链接图标Transact-SQL 语法约定


DATEADD (datepart , number, date )
datepart

是与 integer number 相加的 date 部分。下表列出了所有有效的 datepart 参数。用户定义的变量等效项是无效的。

datepart 缩写

year

yy, yyyy

quarter

qq, q

month

mm, m

dayofyear

dy, y

day

dd, d

week

wk, ww

weekday

dw, w

hour

hh

minute

mi, n

second

ss, s

millisecond

ms

microsecond

mcs

nanosecond

ns

number

是一个表达式,可以解析为与 datedatepart 相加的 int。用户定义的变量是有效的。

如果您指定一个带小数的值,则将小数截去且不进行舍入。

date

是一个表达式,可以解析为 timedatesmalldatetimedatetimedatetime2datetimeoffset 值。date 可以是表达式、列表达式、用户定义的变量或字符串文字。如果表达式是字符串文字,则它必须解析为一个 datetime 值。为避免不确定性,请使用四位数年份。有关两位数年份的信息,请参阅 two digit year cutoff 选项。

返回数据类型为 date 参数的数据类型,字符串文字除外。

字符串文字的返回数据类型为 datetime。如果字符串文字的秒数小数位数超过三位 (.nnn) 或包含时区偏移量部分,将引发错误。

datepart 参数

dayofyeardayweekday 返回相同的值。

每个 datepart 及其缩写都返回相同的值。

如果 datepartmonthdate 月份比返回月份的天数多,因而 date 中的日在返回月份中不存在,则返回返回月份的最后一天。例如,9 月份有 30 天;因此,下面两个语句返回 2006-09-30 00:00:00.000:

SELECT DATEADD(month, 1, '2006-08-30')

SELECT DATEADD(month, 1, '2006-08-31')

number 参数

number 参数不能超出 int 的范围。在下面的语句中,number 的参数超出 int 范围 1。将返回如下错误消息:“将表达式转换为数据类型 int 时出现算术溢出错误。”

copy_off.gif 复制代码
SELECT DATEADD(year,2147483648, '2006-07-31');
SELECT DATEADD(year,-2147483649, '2006-07-31');

date 参数

date 参数不能增加至其数据范围之外的值。在下面的语句中,与 date 值相加的 number 值超出了 date 数据类型的范围。将返回如下错误消息:“将值添加到 'datetime' 列导致溢出。”

copy_off.gif 复制代码
SELECT DATEADD(year,2147483647, '2006-07-31');
SELECT DATEADD(year,-2147483647, '2006-07-31');

date 为 smalldatetime 型、datepart 为秒或秒小数部分时的返回值

smalldatetime 值的秒数部分始终为 00。如果 date 的数据类型为 smalldatetime,则适用以下准则:

  • 如果 datepartsecondnumber 介于 -30 和 +29 之间,则不执行加法。
  • 如果 datepartsecondnumber 小于 -30 或大于 +29,则以一分钟为起值执行加法。
  • 如果 datepartmillisecondnumber 介于 -30001 和 +29998 之间,则不执行加法。
  • 如果 datepartmillisecondnumber 小于 -30001 或大于 +29998,则以一分钟为起值执行加法。

DATEADD 可用在 SELECT <list>、WHERE、HAVING、GROUP BY 和 ORDER BY 子句中。

秒的小数部分精度

不允许将日期部分 microsecondnanosecond 与数据类型为 smalldatetimedatedatetimedate 相加。

毫秒的小数位数为 3 (.123)。微秒的小数位数为 6 (.123456)。纳秒的小数位数为 9 (.123456789)。timedatetime2datetimeoffset 数据类型的最大小数位数为 7 (.1234567)。如果 datepartnanosecond,则 number 必须为 100 才能使 date 的秒小数部分增加。介于 1 和 49 之间的 number 向下舍入为 0,介于 50 和 99 之间的 number 向上舍入为 100。

以下语句加的 datepartmillisecondmicrosecondnanosecond

copy_off.gif 复制代码
DECLARE @datetime2 datetime2 = '2007-01-01 13:10:10.1111111'
SELECT '1 millisecond' ,DATEADD(millisecond,1,@datetime2)
UNION ALL
SELECT '2 milliseconds', DATEADD(millisecond,2,@datetime2)
UNION ALL
SELECT '1 microsecond', DATEADD(microsecond,1,@datetime2)
UNION ALL
SELECT '2 microseconds', DATEADD(microsecond,2,@datetime2)
UNION ALL
SELECT '49 nanoseconds', DATEADD(nanosecond,49,@datetime2)
UNION ALL
SELECT '50 nanoseconds', DATEADD(nanosecond,50,@datetime2)
UNION ALL
SELECT '150 nanoseconds', DATEADD(nanosecond,150,@datetime2);
/*
Returns:
1 millisecond 2007-01-01 13:10:10.1121111
2 milliseconds 2007-01-01 13:10:10.1131111
1 microsecond 2007-01-01 13:10:10.1111121
2 microseconds 2007-01-01 13:10:10.1111131
49 nanoseconds 2007-01-01 13:10:10.1111111
50 nanoseconds 2007-01-01 13:10:10.1111112
150 nanoseconds 2007-01-01 13:10:10.1111113
*/

时区偏移量

不允许对时区偏移量执行加法。

A. 以 1 为增量递增 datepart

下面的每条语句以 1 为增量递增 datepart

copy_off.gif 复制代码
DECLARE @datetime2 datetime2 = '2007-01-01 13:10:10.1111111'
SELECT 'year', DATEADD(year,1,@datetime2)
UNION ALL
SELECT 'quarter',DATEADD(quarter,1,@datetime2)
UNION ALL
SELECT 'month',DATEADD(month,1,@datetime2)
UNION ALL
SELECT 'dayofyear',DATEADD(dayofyear,1,@datetime2)
UNION ALL
SELECT 'day',DATEADD(day,1,@datetime2)
UNION ALL
SELECT 'week',DATEADD(week,1,@datetime2)
UNION ALL
SELECT 'weekday',DATEADD(weekday,1,@datetime2)
UNION ALL
SELECT 'hour',DATEADD(hour,1,@datetime2)
UNION ALL
SELECT 'minute',DATEADD(minute,1,@datetime2)
UNION ALL
SELECT 'second',DATEADD(second,1,@datetime2)
UNION ALL
SELECT 'millisecond',DATEADD(millisecond,1,@datetime2)
UNION ALL
SELECT 'microsecond',DATEADD(microsecond,1,@datetime2)
UNION ALL
SELECT 'nanosecond',DATEADD(nanosecond,1,@datetime2);
/*
Year 2008-01-01 13:10:10.1111111
quarter 2007-04-01 13:10:10.1111111
month 2007-02-01 13:10:10.1111111
dayofyear 2007-01-02 13:10:10.1111111
day 2007-01-02 13:10:10.1111111
week 2007-01-08 13:10:10.1111111
weekday 2007-01-02 13:10:10.1111111
hour 2007-01-01 14:10:10.1111111
minute 2007-01-01 13:11:10.1111111
second 2007-01-01 13:10:11.1111111
millisecond 2007-01-01 13:10:10.1121111
microsecond 2007-01-01 13:10:10.1111121
nanosecond 2007-01-01 13:10:10.1111111
*/

B. 在一条语句中将 datepart 增加一级以上

下面的每条语句将 datepart 与一个足够大的 number 相加,使得 date 的上一级 datepart 也增大。

copy_off.gif 复制代码
DECLARE @datetime2 datetime2;
SET @datetime2 = '2007-01-01 01:01:01.1111111';
--Statement Result
-------------------------------------------------------------------
SELECT DATEADD(quarter,4,@datetime2); --2008-01-01 01:01:01.110
SELECT DATEADD(month,13,@datetime2); --2008-02-01 01:01:01.110
SELECT DATEADD(dayofyear,365,@datetime2); --2008-01-01 01:01:01.110
SELECT DATEADD(day,365,@datetime2); --2008-01-01 01:01:01.110
SELECT DATEADD(week,5,@datetime2); --2007-02-05 01:01:01.110
SELECT DATEADD(weekday,31,@datetime2); --2007-02-01 01:01:01.110
SELECT DATEADD(hour,23,@datetime2); --2007-01-02 00:01:01.110
SELECT DATEADD(minute,59,@datetime2); --2007-01-01 02:00:01.110
SELECT DATEADD(second,59,@datetime2); --2007-01-01 01:02:00.110
SELECT DATEADD(millisecond,1,@datetime2); --2007-01-01 01:01:01.110

C. 使用表达式作为 number 和 date 形参的实参

以下示例使用不同类型的表达式作为 numberdate 形参的实参。

将列指定为 date

下例将每个 OrderDate 加上 2 天以计算新的 PromisedShipDate

copy_off.gif 复制代码
USE AdventureWorks;
GO
SELECT SalesOrderID
,OrderDate
,DATEADD(day,2,OrderDate) AS PromisedShipDate
FROM Sales.SalesOrderHeader;

将用户定义的变量指定为 number 和 date

下例将用户定义的变量指定为 numberdate 的参数。

copy_off.gif 复制代码
DECLARE @days int;
DECLARE @datetime datetime;
SET @days = 365;
SET @datetime = '2000-01-01 01:01:01.111'; /* 2000 was a leap year */
SELECT DATEADD(day, @days, @datetime);

将标量系统函数指定为 date

下例指定 SYSDATETIME 用作 date

copy_off.gif 复制代码
SELECT DATEADD(month, 1, SYSDATETIME());

将标量子查询和标量函数指定为 number 和 date

下例将标量子查询和标量函数 MAX(ModifiedDate) 用作 numberdate 的参数。(SELECT TOP 1 ContactID FROM Person.Contact) 是 number 形参的假实参,用来说明如何从值列表中选择 number 实参。

copy_off.gif 复制代码
USE AdventureWorks;
GO
SELECT DATEADD(month,(SELECT TOP 1 ContactID FROM Person.Contact),
(SELECT MAX(ModifiedDate) FROM Person.Contact));

将常量指定为 number 和 date

下例将数值和字符常量用作 numberdate 的参数。

SELECT DATEADD(minute, 1, ' 2007-05-07 09:53:01.0376635');

将数值表达式和标量系统函数指定为 number 和 date

下例将数值表达式 (-(10/2))、一元运算符 (-)、算术运算符 (/) 和标量系统函数 (SYSDATETIME) 用作 numberdate 的参数。

copy_off.gif 复制代码
SELECT DATEADD(month,-(10/2), SYSDATETIME());

将排名函数指定为 number

下例将排名函数用作 number 的参数。

copy_off.gif 复制代码
USE AdventureWorks;
GO
SELECT c.FirstName, c.LastName
,DATEADD(day,ROW_NUMBER() OVER (ORDER BY
a.PostalCode),SYSDATETIME()) AS 'Row Number'
FROM Sales.SalesPerson s
INNER JOIN Person.Contact c
ON s.SalesPersonID = c.ContactID
INNER JOIN Person.Address a
ON a.AddressID = c.ContactID
WHERE TerritoryID IS NOT NULL
AND SalesYTD <> 0;

将聚合开窗函数指定为 number

下例将聚合开窗函数用作 number 的参数。

copy_off.gif 复制代码
USE AdventureWorks;
GO
SELECT SalesOrderID, ProductID, OrderQty
,DATEADD(day,SUM(OrderQty)
OVER(PARTITION BY SalesOrderID),SYSDATETIME()) AS 'Total'
FROM Sales.SalesOrderDetail
WHERE SalesOrderID IN(43659,43664);
GO

参考

CAST 和 CONVERT (Transact-SQL)

DATEDIFF (Transact-SQL)

http://msdn.microsoft.com/zh-cn/library/ms189794.aspx

返回指定的 startdateenddate 之间所跨的指定 datepart 边界的计数(带符号的整数)。

有关所有 Transact-SQL 日期和时间数据类型及函数的概述,请参阅日期和时间数据类型及函数 (Transact-SQL)。 有关日期和时间数据类型及函数共有的信息和示例,请参阅使用日期和时间数据。

主题链接图标Transact-SQL 语法约定


DATEDIFF ( datepart , startdate , enddate )
datepart

是指定所跨边界类型的 startdateenddate 的一部分。 下表列出了所有有效的 datepart 参数。 用户定义的变量等效项是无效的。

datepart 缩写

year

yy, yyyy

quarter

qq, q

month

mm, m

dayofyear

dy, y

day

dd, d

week

wk, ww

hour

hh

minute

mi, n

second

ss, s

millisecond

ms

microsecond

mcs

nanosecond

ns

startdate

是一个表达式,可以解析为 timedatesmalldatetimedatetimedatetime2datetimeoffset 值。date 可以是表达式、列表达式、用户定义的变量或字符串文字。从 enddate 减去 startdate

为避免不确定性,请使用四位数年份。 有关两位数年份的信息,请参阅two digit year cutoff 选项。

enddate

请参阅 startdate

int

  • 每个 datepart 及其缩写都返回相同的值。

如果返回值超出 int 的范围(-2,147,483,648 到 +2,147,483,647),则会返回一个错误。 对于 millisecondstartdateenddate 之间的最大差值为 24 天 20 小时 31 分钟 23.647 秒。 对于 second,最大差值为 68 年。

如果为 startdateenddate 都只指定了时间值,并且 datepart 不是时间 datepart,则会返回 0。

在计算返回值时不使用 startdateendate 的时区偏移量部分。

由于 smalldatetime 仅精确到分钟,因此将 smalldatetime 值用作 startdateenddate 时,返回值中的秒和毫秒将始终设置为 0。

如果只为某个日期数据类型的变量指定时间值,则所缺日期部分的值将设置为默认值:1900-01-01。 如果只为某个时间或日期数据类型的变量指定日期值,则所缺时间部分的值将设置为默认值:00:00:00。 如果 startdateenddate 中有一个只含时间部分,另一个只含日期部分,则所缺时间和日期部分将设置为各自的默认值。

如果 startdateenddate 属于不同的日期数据类型,并且其中一个的时间部分或秒的小数部分精度比另一个高,则另一个的所缺部分将设置为 0。

日期部分边界

以下语句具有相同的 startdate 和相同的 endate。 这些日期是相邻的,在时间上相差 .0000001 秒。 每个语句中 startdateendate 之间的差跨其 datepart 的一个日历或时间边界。 每个语句都返回 1。如果本例使用不同的年份且 startdateendate 都在相同的日历周内,则 week 的返回值将为 0。

SELECT DATEDIFF(year, '2005-12-31 23:59:59.9999999'

, '2006-01-01 00:00:00.0000000');

SELECT DATEDIFF(quarter, '2005-12-31 23:59:59.9999999'

, '2006-01-01 00:00:00.0000000');

SELECT DATEDIFF(month, '2005-12-31 23:59:59.9999999'

, '2006-01-01 00:00:00.0000000');

SELECT DATEDIFF(dayofyear, '2005-12-31 23:59:59.9999999'

, '2006-01-01 00:00:00.0000000');

SELECT DATEDIFF(day, '2005-12-31 23:59:59.9999999'

, '2006-01-01 00:00:00.0000000');

SELECT DATEDIFF(week, '2005-12-31 23:59:59.9999999'

, '2006-01-01 00:00:00.0000000');

SELECT DATEDIFF(hour, '2005-12-31 23:59:59.9999999'

, '2006-01-01 00:00:00.0000000');

SELECT DATEDIFF(minute, '2005-12-31 23:59:59.9999999'

, '2006-01-01 00:00:00.0000000');

SELECT DATEDIFF(second, '2005-12-31 23:59:59.9999999'

, '2006-01-01 00:00:00.0000000');

SELECT DATEDIFF(millisecond, '2005-12-31 23:59:59.9999999'

, '2006-01-01 00:00:00.0000000');

DATEDIFF 可用在选择列表、WHERE、HAVING、GROUP BY 和 ORDER BY 子句中。

以下示例使用不同类型的表达式作为 startdateenddate 形参的实参。

A. 为 startdate 和 enddate 指定列

下例计算一个表的两列中的日期之间所跨越的日边界数。

copy_off.gif 复制代码
CREATE TABLE dbo.Duration
(
startDate datetime2
,endDate datetime2
)
INSERT INTO dbo.Duration(startDate,endDate)
VALUES('2007-05-06 12:10:09','2007-05-07 12:10:09')
SELECT DATEDIFF(day,startDate,endDate) AS 'Duration'
FROM dbo.Duration;
-- Returns: 1

B. 为 startdate 和 enddate 指定用户定义的变量

下例使用用户定义的变量作为 startdateenddate 的参数。

copy_off.gif 复制代码
DECLARE @startdate datetime2 = '2007-05-05 12:10:09.3312722';
DECLARE @enddate datetime2 = '2007-05-04 12:10:09.3312722';
SELECT DATEDIFF(day, @startdate, @enddate);

C. 为 startdate 和 enddate 指定标量系统函数

下例使用标量系统函数作为 startdateenddate 的参数。

copy_off.gif 复制代码
SELECT DATEDIFF(millisecond, GETDATE(), SYSDATETIME());

D. 为 startdate 和 enddate 指定标量子查询和标量函数

下例使用标量子查询和标量函数作为 startdateenddate 的参数。

copy_off.gif 复制代码
USE AdventureWorks;
GO
SELECT DATEDIFF(day,(SELECT MIN(OrderDate) FROM Sales.SalesOrderHeader),
(SELECT MAX(OrderDate) FROM Sales.SalesOrderHeader));

E. 为 startdate 和 enddate 指定常量

下例使用字符常量作为 startdateenddate 的参数。

copy_off.gif 复制代码
SELECT DATEDIFF(day, '2007-05-07 09:53:01.0376635'
, '2007-05-08 09:53:01.0376635');

F. 为 enddate 指定数值表达式和标量系统函数

下例使用数值表达式 (GETDATE ()+ 1) 和标量系统函数 GETDATESYSDATETIME 作为 enddate 的参数。

ms189794.note%28zh-cn,SQL.100%29.gif注意:
SYSDATETIME、SYSUTCDATETIME 和 SYSDATETIMEOFFSET 不能作为算术表达式的一部分。

copy_off.gif 复制代码
USE AdventureWorks;
GO
SELECT DATEDIFF(day, '2007-05-07 09:53:01.0376635', GETDATE()+ 1)
AS NumberOfDays
FROM Sales.SalesOrderHeader;
GO
USE AdventureWorks;
GO
SELECT DATEDIFF(day, '2007-05-07 09:53:01.0376635', DATEADD(day,1,SYSDATETIME())) AS NumberOfDays
FROM Sales.SalesOrderHeader;
GO

G. 为 startdate 指定排名函数

下例使用排名函数作为 startdate 的参数。

copy_off.gif 复制代码
USE AdventureWorks;
GO
SELECT c.FirstName, c.LastName
,DATEDIFF(day,ROW_NUMBER() OVER (ORDER BY
a.PostalCode),SYSDATETIME()) AS 'Row Number'
FROM Sales.SalesPerson s
INNER JOIN Person.Contact c
ON s.SalesPersonID = c.ContactID
INNER JOIN Person.Address a
ON a.AddressID = c.ContactID
WHERE TerritoryID IS NOT NULL
AND SalesYTD <> 0;

H. 为 startdate 指定聚合开窗函数

下例使用聚合开窗函数作为 startdate 的参数。

copy_off.gif 复制代码
USE AdventureWorks;
GO
SELECT soh.SalesOrderID, sod.ProductID, sod.OrderQty,soh.OrderDate
,DATEDIFF(day,MIN(soh.OrderDate)
OVER(PARTITION BY soh.SalesOrderID),SYSDATETIME() ) AS 'Total'
FROM Sales.SalesOrderDetail sod
INNER JOIN Sales.SalesOrderHeader soh
ON sod.SalesOrderID = soh.SalesOrderID
WHERE soh.SalesOrderID IN(43659,58918);
GO

参考

CAST 和 CONVERT (Transact-SQL)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

公众号H5 VUE获取CODE

回调地址设置页面向导&#xff1a;开发>接口权限>网页服务>网页授权>修改。开发的项目需要放到已经解析好服务器域名的服务器下&#xff0c;同时把Mp***.text文件放到服务器根目录下&#xff0c;此时你的服务器必须能联通外网也就是有公网IP,并且80端口是打开的&am…

javascript学习系列(18):数组中的include方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说…

JS之获取指定位置Unicode的charCodeAt()方法

用法&#xff1a;charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数 语法&#xff1a;stringObject.charCodeAt(index) 参数&#xff1a;必需。表示字符串中某个位置的数字&#xff0c;即字符在字符串中的下标 注:1&#xff1a;方法…

vue-router使用next()跳转到指定路径时会无限循环

解释1 beforeRouteLeave (to, from, next) {console.log(离开路路由)if(to.fullPath/home){next();}else{next(/home)}这个是组件路由&#xff0c;我想实现的效果是在这个页面点击浏览器的返回按钮后要返回 /home页面而不是上一个页面&#xff0c;上面的代码是没问题的&#x…

JS之按照Unicode返回指定字符串

用法&#xff1a;fromCharCode() 可接受一个指定的 Unicode 值&#xff0c;然后返回一个字符串 语法&#xff1a;String.fromCharCode(numX,numX,…,numX) 参数&#xff1a;必需。一个或多个 Unicode 值&#xff0c;即要创建的字符串中的字符的 Unicode 编码 注意&#xff1…

JSP标签中不要省略引号

<th> 输入po:<input name"po" value"<%po%>"/></th> <th>输入ip:<input name"ip" value"<%ip%>"/></th> 打算出来的界面如图 这个里面如果&#xff0c;"<%ip%>" 不…

JS之返回字符首次出现位置的indexOf

作用&#xff1a;indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置 语法&#xff1a;stringObject.indexOf(searchvalue,fromindex) 参数1&#xff1a;必需。规定需检索的字符串值 参数2&#xff1a;可选的整数参数。规定在字符串中开始检索的位置。它的合法…

JS之返回字符串最后出现的位置lastIndexOf

作用&#xff1a;lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置&#xff0c;在一个字符串中的指定位置从后向前搜索 语法&#xff1a;stringObject.lastIndexOf(searchvalue,fromindex) 参数1&#xff1a;必需。规定需检索的字符串值 参数2&#xff1a;可选的整…

基于mint-ui的城市选择3级联动

1、实际效果 2、首先你需要去下载一个包含中国省份&#xff0c;城市&#xff0c;区县的数据 如下&#xff1a; https://github.com/artiely/Administrative-divisions-of-China&#xff08;里面包含二级联动数据&#xff0c;三级联动数据&#xff0c;四级联动数据等&#xff0…

JS之检索子字符串的search方法

作用&#xff1a;search() 方法用于检索字符串中指定的子字符串&#xff0c;或检索与正则表达式相匹配的子字符串 语法&#xff1a;stringObject.search(regexp) 参数&#xff1a;该参数可以是需要在 stringObject 中检索的子串&#xff0c;也可以是需要检索的 RegExp 对象。…

一个很有深度的C++内存问题---GDB调试(一)

先看代码(a.c)&#xff1a; #include <stdio.h>int main(int argc, char* argv[]){int a[4]{1,2,3,4};int *ptr1(int*)(&a1);int *ptr2(int*)((int)a1);int *ptr3(int*)(a1);printf("a %x, &a %x, &a1 %x, (int)a1 %x\n", a, &a, &a1…

咬文嚼字——1

看点&#xff1a;作者王琦 勘误&#xff1a;张琦等编著 出处&#xff1a;永正网上购书中心 [url]http://www.erbook.com.cn/list.asp?sp_code9787121067921[/url] 《案例精解企业级网络构建》六位主创人员博客地址&#xff1a; 张琦&#xff1a; [url]http://zhangqi.blog.51…

HTML DOM之属性的各种操作方法

1.element.getAttribute(attributename)方法用来返回指定属性名的属性值&#xff0c;返回的类型是字符串类型 2.element.getAttributeNode(attributename)方法从当前元素节点(nodeType值为1的节点)element中通过名称获取属性节点(nodeType值为2的节点)&#xff0c;返回值是指定…

CSS Grid布局(2)

6.间距 grid-column-gap和grid-row-gap属性用来创建列与列&#xff0c;行与行之间的间距 间距(Gap)可以设置任何非负值&#xff0c;长度值可以是px、%、em等单位值 grid-gap是grid-row-gap和grid-column-gap两个属性的缩写 如果它指定了两个值&#xff0c;那么第一个值是设置…

React开发(124):ant design学习指南之form中的属性isFieldTouched

没有值的时候返回提示的error 有值返回undefined

HDU 4990 Ordered Subsequence --数据结构优化DP

题意&#xff1a;给一串数字&#xff0c;问长度为m的严格上升子序列有多少个 解法&#xff1a;首先可以离散化为10000以内&#xff0c;再进行dp&#xff0c;令dp[i][j]为以第i个元素结尾的长度为j的上升子序列的个数&#xff0c; 则有dp[i][j] SUM(dp[k][j-1]) (a[k] < a[…

CSS Grid布局(3)

10.网格线命名 通过grid-template-rows和grid-template-columns定义网格时&#xff0c;网格线可以被命名。网格线名称也可以设置网格项目位置 grid-template-rows和grid-template-columns定义你的网格&#xff0c;将名称分配给网格线 定义网格线名称时需要避免使用规范中出现…