笺注:这是在 使用Navicat远程管理MSSQL2014 的基础上进行的。
使用Navicat的查询编辑器:
在库data1中创建表t_1:
Use data1;
create table t_1 (id int primary key not null identity (1,1),name varchar(50),shijian1 datetime,shijian2 datetime)
效果:
表data1.dbo.t_1的表结构:
注释:字段id为主键、标识符列,会自动增长。
######
使用Navicat往表data1.dbo.t_1中一次性插入多条记录:(字段id为主键、标识符列,会自动增长,不用写)
Use data1;
insert into t_1 (name,shijian1,shijian2) values ('zhuohua','1987-1-9','1987-1-19');
insert into t_1 (name,shijian1,shijian2) values ('Python','1987-1-9','1987-4-18');
insert into t_1 (name,shijian1,shijian2) values ('Mary','2018-2-8 8:3:15','2019-3-6 12:30:6');
insert into t_1 (name,shijian1,shijian2) values ('Lily','2018-4-9 18:6:23','2000-06-16 22:03:15');
在查询编辑器里输出表data1.dbo.t_1中的所有记录:
SELECT * FROM data1.dbo.t_1;
只显示日期部分:(方式一)
Use data1;
SELECT CONVERT(VARCHAR(12),shijian1,111) AS date1,shijian2 FROM t_1;
只显示日期部分:(方式二)
Use data1;
SELECT CONVERT(VARCHAR(12),shijian1,23) AS date1,shijian2 FROM t_1;
只显示日期中的年:
Use data1;
SELECT name,YEAR(shijian2) AS yesar2 FROM t_1;
只显示日期中的月:
Use data1;
SELECT name,MONTH(shijian2) AS month2 FROM t_1;
只显示日期中的日:
Use data1;
SELECT name,DAY(shijian2) AS day2 FROM t_1;
查询两个日期之间的相隔天数:( 不足一天的话,返回的结果会是0 )
Use data1;
SELECT name,shijian1,shijian2,datediff(D,shijian1,shijian2) AS 相隔天数 FROM t_1;
注释:在datediff()函数里,如果第一个日期大于第二个日期,返回的结果会是负数。
查询两个日期之间的相隔月数:( 不足一个月的话,返回的结果会是0 )
Use data1;
SELECT name,shijian1,shijian2,datediff(M,shijian1,shijian2) AS 相隔月数 FROM t_1;
注释:在datediff()函数里,如果第一个日期大于第二个日期,返回的结果会是负数。
查询两个日期之间的相隔年数:( 不足一年的话,返回的结果会是0 )
Use data1;
SELECT name,shijian1,shijian2,datediff(YYYY,shijian1,shijian2) AS 相隔年数 FROM t_1;
注释:在datediff()函数里,如果第一个日期大于第二个日期,返回的结果会是负数。
显示两个日期之间相差超过2年的记录:
Use data1;
SELECT name,shijian1,shijian2 FROM t_1 WHERE datediff(YYYY,shijian1,shijian2) > 2
Use data1;
SELECT name,shijian1,shijian2 FROM t_1 WHERE datediff(YYYY,shijian2,shijian1) > 2
注释:这种情况下,在datediff()函数里,第一个日期要小于第二个日期。
只显示时间部分:
Use data1;
SELECT CONVERT(VARCHAR(12),shijian1,8) AS time1,shijian2 FROM t_1;
只显示时间中的时:
Use data1;
SELECT name,dateName(hh,shijian1) AS hour1 FROM t_1;
只显示时间中的分:
Use data1;
SELECT name,dateName(N,shijian1) AS minute1 FROM t_1;
只显示时间中的秒:
Use data1;
SELECT name,dateName(S,shijian1) AS second1 FROM t_1;
查询两个时间之间的相隔小时数:( 不足一个小时的话,返回的结果会是0 )
Use data1;
SELECT name,shijian1,shijian2,datediff(HH,shijian1,shijian2) AS 相隔小时数 FROM t_1;
注释:在datediff()函数里,如果第一个时间大于第二个时间,返回的结果会是负数。
查询两个时间之间相差大于240个小时的记录:
Use data1;
SELECT name,shijian1,shijian2,datediff(HH,shijian1,shijian2) AS 相隔小时数 FROM t_1 WHERE datediff(HH,shijian1,shijian2) > 240;
查询两个时间之间相差大于或等于240个小时的记录:
Use data1;
SELECT name,shijian1,shijian2,datediff(HH,shijian1,shijian2) AS 相隔小时数 FROM t_1 WHERE datediff(HH,shijian1,shijian2) >= 240;
查询两个时间之间相差小于3个小时的记录:
Use data1;
SELECT name,shijian1,shijian2,datediff(HH,shijian1,shijian2) AS 相隔小时数 FROM t_1 WHERE datediff(HH,shijian1,shijian2) < 3;
查询两个时间之间相差小于或等于3个小时的记录:
Use data1;
SELECT name AS 姓名 FROM t_1 WHERE datediff(HH,shijian1,shijian2) <= 3;
查询两个时间之间的相隔分钟数:
Use data1;
SELECT name,shijian1,shijian2,datediff(N,shijian1,shijian2) AS 相隔分钟数 FROM t_1;
注释:在datediff()函数里,如果第一个时间大于第二个时间,返回的结果会是负数。
查询两个时间之间的相隔秒钟数:
Use data1;
SELECT name,shijian1,shijian2,datediff(S,shijian1,shijian2) AS 相隔秒钟数 FROM t_1;
注释:在datediff()函数里,如果第一个时间大于第二个时间,返回的结果会是负数。
给用户Lily的字段shijian2加大21年:
Use data1;
update t_1 set shijian2 = dateadd(YYYY,21,shijian2) WHERE name = 'Lily';
SELECT * FROM t_1;
给用户Lily的字段shijian2减小1年:
Use data1;
update t_1 set shijian2 = dateadd(YYYY,-1,shijian2) WHERE name = 'Lily';
SELECT * FROM t_1;
给用户Lily的字段shijian2加大2个月:
Use data1;
update t_1 set shijian2 = dateadd(M,2,shijian2) WHERE name = 'Lily';
SELECT * FROM t_1;
给用户Lily的字段shijian2加大3天:
Use data1;
update t_1 set shijian2 = dateadd(D,3,shijian2) WHERE name = 'Lily';
SELECT * FROM t_1;
给用户Lily的字段shijian2减小1小时:
Use data1;
update t_1 set shijian2 = dateadd(HH,-1,shijian2) WHERE name = 'Lily';
SELECT * FROM t_1;
给用户Lily的字段shijian2减小2分钟:
Use data1;
update t_1 set shijian2 = dateadd(N,-2,shijian2) WHERE name = 'Lily';
SELECT * FROM t_1;
给用户Lily的字段shijian2减小3秒钟:
Use data1;
update t_1 set shijian2 = dateadd(S,-3,shijian2) WHERE name = 'Lily';
SELECT * FROM t_1;
根据日期部分作为关键字进行查询:
Use data1;
SELECT * FROM t_1 WHERE CONVERT(VARCHAR(12),shijian1,23) = '1987-01-09';
Use data1;
SELECT name,CONVERT(VARCHAR(12),shijian1,23) AS date1 FROM t_1 WHERE CONVERT(VARCHAR(12),shijian1,23) = '1987-01-09';
Use data1;
SELECT name,CONVERT(VARCHAR(12),shijian1,23) AS date1 FROM t_1 WHERE CONVERT(VARCHAR(12),shijian1,23) LIKE '1987-01-%';
Use data1;
SELECT name,CONVERT(VARCHAR(12),shijian2,23) AS date2 FROM t_1 WHERE YEAR(shijian2) IN ('1987','2019');
Use data1;
SELECT name,CONVERT(VARCHAR(12),shijian2,23) AS date2 FROM t_1 WHERE YEAR(shijian2) BETWEEN '1987' AND '2019';
根据时间部分作为关键字进行查询:
Use data1;
SELECT * FROM t_1 WHERE CONVERT(VARCHAR(12),shijian1,8) = '08:03:15';
Use data1;
SELECT name,CONVERT(VARCHAR(12),shijian1,8) AS time1 FROM t_1 WHERE CONVERT(VARCHAR(12),shijian1,8) = '08:03:15';
相关文章:
MSSQL的SQL语句
Windows2008R2_安装MySQL5.5
dateutil.rrule()函数
Python3脚本管理MSSQL2014 |