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

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

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

date

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

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

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

datepart 参数

dayofyear、day 和 weekday 返回相同的值。

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

如果 datepart 为 month 且 date 月份比返回月份的天数多,因而 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,则适用以下准则:

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

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

秒的小数部分精度

不允许将日期部分 microsecond 或 nanosecond 与数据类型为 smalldatetime、date 和 datetime 的 date 相加。

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

以下语句加的 datepart 为 millisecond、microsecond 或 nanosecond。

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 形参的实参

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

将列指定为 date

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

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

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

下例将用户定义的变量指定为 number 和 date 的参数。

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) 用作 number 和 date 的参数。(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

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

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

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

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

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

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

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

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


DATEDIFF ( datepart , startdate , enddate )
datepart

是指定所跨边界类型的 startdate 和 enddate 的一部分。 下表列出了所有有效的 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

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

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

enddate

请参阅 startdate。

int

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

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

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

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

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

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

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

日期部分边界

以下语句具有相同的 startdate 和相同的 endate。 这些日期是相邻的,在时间上相差 .0000001 秒。 每个语句中 startdate 与 endate 之间的差跨其 datepart 的一个日历或时间边界。 每个语句都返回 1。如果本例使用不同的年份且 startdate 和 endate 都在相同的日历周内,则 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 子句中。

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

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 指定用户定义的变量

下例使用用户定义的变量作为 startdate 和 enddate 的参数。

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 指定标量系统函数

下例使用标量系统函数作为 startdate 和 enddate 的参数。

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

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

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

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

E. 为 startdate 和 enddate 指定常量

下例使用字符常量作为 startdate 和 enddate 的参数。

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

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

下例使用数值表达式 (GETDATE ()+ 1) 和标量系统函数 GETDATE 与 SYSDATETIME 作为 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.tpcf.cn/news/407261.html

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

相关文章

公众号H5 VUE获取CODE

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

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

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

curPos和tgtPos

curpos tgtpos 乍一看以为是当前位置和目标位置&#xff0c;但在项目里面这两个位置有点坑 当客户端玩家移动或者AI里面的位置&#xff0c;会把获得的位置付给tgtpos 而以前的tgtpos会付给curpos 所以这个tgtpos是当前玩家或者怪物站立的位置&#xff0c;而curpos是上一个位置 …

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

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

利用ioctl获取本机指定设备的MAC地址

// 利用ioctl获取本机指定设备的MAC地址#include<stdio.h>#include<string.h>#include<stdlib.h>#include<errno.h>#include<unistd.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/i…

日本語趣味読み 一 星とり

星とり ある夜のこと、お寺の庭で、小僧さんが、長い竹竿を、あっちこっち振り回りしておりました。 和尚さんがこれを見つけて、 「これこれ、そこで何をしているのじゃ。」 と聞きますと、小僧さんは、 「お空の星がほしくって、打ち落とそうとしているのでございますが、 ひ…

usaco-sprime-superprime-pass

这个题目开始真正用C&#xff0b;&#xff0b;了&#xff0c;因为&#xff0c;数组的分配有限制了&#xff0c;只好用c中的vector: /* ID: qq104801 LANG: C TASK: sprime */#include <iostream> #include <cstdio> #include <string> #include <cstring&…

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…

顺序容器STL::list用法

C Code: // 顺序容器STL::list用法#include<iostream>#include <stdio.h>#include <stdlib.h>#include <list>using namespace std;void appendItems(list<int> &li, int n){for(int i 0; i < n; i){li.push_back(i1);}}void appendIte…

搭建自己的base.js(2)-其他事件方法

获取鼠标按键 // 获取鼠标按键,getButton:function(event) {//DOM,先检测是否支持DOM鼠标事件if(document,implementation.hasFeature("MouseEvents","2.0")) {return event.button; //0主键&#xff0c;1滚轮&#xff0c;2次键} else { //IE8及之前switc…

Linux下的压缩zip,解压缩unzip命令详解及实例

zip all.zip *.jpg #将所有.jpg的文件压缩成一个zip包unzip all.zip #将all.zip中的所有文件解压到当前目录中unzip all.zip -d all #将all.zip 中的所有文件解压到当前目录中的all文件夹中zip -r hy.zip hy #将当前目录下的hy文件夹压缩为hy.zipzip -r hy.zip hy 123.tx…

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;可选的整数参数。规定在字符串中开始检索的位置。它的合法…

vsftpd默认用户名/密码

我的Linux系统是Fedora12&#xff0c;在它上面安装vsftpd的步骤是&#xff1a; yum install vsftpd 安装好后&#xff0c;要启动vsftpd服务&#xff1a;service vsftpd start 停止服务&#xff1a;service vsftpd stop 重启服务&#xff1a;service vsftpd restart 查看状态…

怎样设计接口?

怎样设计接口&#xff1f; 众所周知&#xff0c;接口是提供给其它模块或者系统使用的一种约定或者规范。因此接口必需要保证足够的稳定性和易用性。这是设计接口的基本要求。 1.稳定性 接口必须相对稳定&#xff0c;否则将导致接口的使用者和提供者为了适应新接口而不断改动接口…

软件工程心理学之9----乙方如何面对甲方2

(本文同步发布在javaeye.com上,转载请保留出处) 在http://www.cnblogs.com/jackyrong/archive/2006/11/08/554694.html中, 大概谈了下如何应对甲方的领导。这次要谈的就是很重要的如何应对甲方的信息项目的负责人了。这其实也是相当重要的一部分&#xff0c;在打通了和甲方领导…

input禁止输入的方法

1&#xff1a; readonly规定输入字段为只读可复制&#xff0c;但是&#xff0c;用户可以使用Tab键切换到该字段&#xff0c;可选择,可以接收焦点&#xff0c;还可以选中或拷贝其文本。 <input type"text" value"哈哈哈" readonly"readonly"&g…