sql server 日期函数 sql日期函数的使用方法
sql server 如何将日期时间字段修改成最接近该时间的整点时间?
declare @dt2 datetime='2013-5-1'以下语句中的时间字段以“date_test”为例
sql server 日期函数 sql日期函数的使用方法
sql server 日期函数 sql日期函数的使用方法
1、获取“最近”的整点:
使用DATEADD(datepart,number,date)函数(结尾有详细语法说明)来获取一个时间30分钟后的时间DATEADD(mi,30,date_test)
列值为2017-01-01
01:20:00,返回2017-01-01
01:50:00,即整点1点
列值为2017-01-01
01:40:00,返回2017-01-01
02:10:00,即整点2点
2、根据方法1获取的时间,使用DATENAME函数分别取出年份、月份、小时,比如年份DATENAME(YEAR,DATEADD(mi,30,date_test))
3、根据方法2获取的年份、月份、小时,使用’-‘符连接成时间,用 CAST(char
as
datetime)函数转成时间数据类型
完整代码(代码中以系统当前时间(getdate())为参考时间):
select CAST(DATENAME(YEAR,DATEADD(mi,30,getdate()))+'-'+DATENAME(MONTH,DATEADD(mi,30,getdate()))+'-'+DATENAME(DAY,DATEADD(mi,30,getdate()))+' '+DATENAME(HOUR,DATEADD(mi,30,getdate()))+':00:00' AS DATETIME)
DATEADD的语法:
--DATEADD(datepart,number,date)——在日期上增加给定日期类型的数量;
select dateadd(yyyy,4,cl_s_time) as '增加4年后' from class --datepart - 年份
yy、yyyy
--datepart - 季度
qq、q
select dateadd(mm,3,cl_s_time) as '增加3月度后' from class
--datepart - 月份
mm、m
--datepart - 每年的某一日
dy、y
dd、d
--datepart - 星期
wk、ww
--datepart - 小时
hh
--datepart - 分钟
mi、n
--datepartSql - 秒
ss、s
--datepart - 毫秒
ms
如何在SQL server insert语句中插入默认当前日期?
下一分 2011-02-11 21:28:15.750这个要在建表的时候设置好,比如
create table student (
stuno int,
sc varchar(50),
entry_date date default getdate()
)这样建表后,你每次插入数据的时候,如果entry_date字段没有传值进来,那么系统会默认取当前日期
入学时间为字符型:
insert into school.student(学号,专业,入学时间) values(3222,'',convert(varchar(10),getdate(),120))
入学时间为日期型:
insert into school.student(学号,专业,入学时间) values(3222,'',getdate())
例如在Table_Name中包含一个时间的列date_now
插入语句可以使用如下insert into Table_Name(dat返回表示指定 date 的月份的整数。e_now) values(getdate())
例如在Table_Name中包含一个时间的列date_now
插入语句可以使用如下insert into Table_Name(date_now) values(getdate())
在sql server insert语句中插入默认当前日期的方法:
1、入学时间为字符型:
insert into school.student(学号,专业,入学时间)
values(3222,'',convert(varchar(10),getdate(),120))
2、入学时间为日期型:
insert into school.student(学号,专业,入学时间)
SQL用的是getdate()函数 默认当前时间
insert into school.student(学号,专业,入学时间) values(3222,'',getdate())
insert into school.student values(3222,'',getdate());
不过你的列类型是要datetime类型
INSERT INTO 表名称
( ID, CreatedTime )
VALUES ( NEWID(), GETDATE() )
sql 生日查询
2、要计算每个人的年龄,可用如下语句:有很多方法可以实现吧,灵活点,具体的数据库系统实现可能有所不同,
--datepart - 日期主要是利用日期和时间函数进得计算:
后天=今天+2天
以下给个参考,sql server的例子
select from employee where datediff(dd,getdate(),birthday)=2
你们不觉得直接根据出生日期算有问题吗?难道所有的人都是1岁吗 生日跟当前时间会相很多年 不能直接算
select from 表 where ziduan like %(生日减去2天)
SQL 如何获取日期表示去年的今天
SELECT 121 AS ID , Convert(VARCHAR(30), GETDATE(), 121) AS resultvar day=365;
SELECT 109 AS ID , Convert(VARCHAR(30), GETDATE(), 109) AS result UNION ALLif (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
day =366;
就是闰年 和平年
当前时间 - day
select dateadd(year,-1,getdate()) 不行吗?
select dateadd(y,-1,getdate())
SQL server中用日期函数计算年龄和天数,并以消息方式输出
SELECT 110 AS ID , Convert(VARCHAR(30), GETDATE(), 110) AS result UNION ALLdeclare @sql nvarchar(max),@birthday alldatetime
set @birthday='如果是 SQL 1987-10-13'
set @sql='年龄'+cast(datediff(yy,@birthday,getdate()) as nvarchar)+'岁,'+cast(datediff(dd,@birthday,getdate()) as nvarchar)+'天'
print @sql
SQL server 对日期每三天进行分组
1、首先需要一个能生成日期范围的表值函数
/
SELECT FROM DateRange('d','2018-01-01','2018-06-01')
3、生成如:Convert(datetime,120)每隔3天的日期段
4、使用上面的查询去关联带值的表,然后进行SU13> SELECT '分' AS '日期部分', DATEDIFF(mi, '2012-12-21', GETDATE()) AS [数值]M即可实现
SQL语句获取日期的月份
select用sql自带函数month来实现。
请参阅获取月份语句如下:
select MONTH(列名) as month from 表名.
执行结果如下:
拓展资料:
sql中常见日期获取:
select MONTH(GETDATE()) --获取当前月份
select MONTH(DATEADD(MONTH,1,GETDATE())) --获取当前月份的下个月
year()获取年
select year(GETDATE())
day()获取日
select day(GETDATE())
SELECT MONTH('2008-11-2 00:00:00');
MONTH (Transact-SQL) 发送反馈
全部折叠全部展开 语言筛选器: 全部语言筛选器: 多个语言筛选器: Visual Basic语言筛选器: C#语言筛选器: C++语言筛选器: J#语言筛选器: JScript
Visual Basic(Declaration)
C#
C++
J#
JScript
有关所有 Transact-SQL 日期和时间数据类型及函数的概述,请参阅日期和时间数据类型及函数 (Transact-SQL)。有关日期和时间数据类型及函数共有的信息和示例,请参阅使用日期和时间数据。
Transact-SQL 语法约定
语法
MONTH ( date )
参数
date
是一个可以解析为 time、date、alldatetime、datetime、datetime2 或 datetimeoffset 值的表达式。date 参数可以是表达式、列表达式、用户定义变量或字符串文字。
返回类型
int
返回值
MONTH 返回的值与 DATEPART (month, date) 所返回的值相同。
如果 date 只包含时间部分,则返回值为 1,即基准月。
示例
以下语句将返回 4。这是月份的数字。
代码
SELECT MONTH('2007-04-30T01:01:01.1234567 -07:00');
下面的语句将返回 1900, 1, 1。date 的参量为数字 0。SQL 将 0 解释为 1900 年 1 月 1 日。
代码
SELECT YEAR(0), MONTH(0), DAY(0);
YEAR('2008-11-2 00:00:00') --年
MONTH('2008-11-2 00:00:00') --月
DAY('2008-11-2 00:00:00') --日
DATEPART ( datepart , date )
DATEPART(MM,'2008-11-2 00:00:00')
年份 yy、yyyy
季度 qq、q
月份 mm、m
每年的某一日 dy、y
日期 dd、d
星期 wk、ww
工作日 dw
小时 hh
分钟 mi、n
秒 ss、s
毫秒 ms
select DataName(month,'2008-11-2 00:00:00
select Month('2008-11-2 00:00:00')
sql日期的模糊(like)查询,字断内日期的格式为yyyy-m-d,针对1日与10几日,2日与20几日怎么区分?
SQL CONVERT() 函数
SQL Date 函数
定义和用法
CONVERT() 函数是把日期转换为新数据类型的通用函数。
CONVERT() 函数可以用不同的格式显示日期/时间数据。
语法
CONVERT(data_type(length),data_to_be_converted,style)data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。
可以使用的 style 值:
Style ID Style 格式
100 或者 0 mon dd yyyy hh:miAM (或者 PM)
101 mm/dd/yy
102 yy.mm.dd
103 dd/mm/yy
104 dd.mm.yy
105 dd-mm-yy
106 dd mon yy
107 Mon dd, yy
108 hh:mm:ss
109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
110 mm-dd-yy
111 yy/mm/dd
112 yymmSELECT 11 AS ID , Convert(VARCHAR(30), GETDATE(), 11 ) AS result UNION ALLdd
113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)
114 hh:mi:ss:mmm(24h)
120 或者 20 yyyy-mm-dd hh:mi:ss(24h)
121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(2declare @dt1 datetime='2013-1-2'4h)
126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)
131 dd/mm/yy hh:mi:ss:mmmAM
实例
下面的脚本使用 CONVERT() 函数来显示不同的格式。我们将使用 GETDATE() 函数来获得当前的日期/时间:
CONVERT(VARCHAR(19),GETDATE())
CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)
结果类似:
Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635
用121转换一下,就是人习惯的格式了,且3月是03,不出现位数不同的问题,呵呵
like '%-3-1'
sql函数计算半年后的日期
下一秒 2011-02-11 21:27:16.750SELECT
GETDATE() AS [今天],
DATEADD(mm, 3, GETDATE() ) AS [3月后],
DATEADD(mm, 6, GETDATE() ) AS [6月后]
今天 3月后 6月后
----------------------- -------------select dateadd(q,2,cl_s_time) as '增加2季度后' from class---------- -----------------------
2011-07-16 21:26:11.310 2011-10-16 21:26:11.310 2012-01-16 21:26:11.310
(1 行受影响)
SELECT
GETDATE() AS [今天],
DATEADD(mm, 3, GETDATE() ) AS [3月后],
DATEADD(mm, 6, GETDATE() ) AS [6月后]
今天 3月后 6月后
----------------------- ----------------------- -----------------------
2011-07-16 21:26:11.310 2011-10-16 21:26:11.310 2012-01-16 21:26:11.310
(1 行受影响)
select cast(cast('2011-09-01' as datetime)-getdate() as int)
sqlserver如何根据当前日期获得上月某一天的日期
SELECT 14 AS ID , Convert(VARCHAR(30), GETDATE(), 14 ) AS result UNION ALLsqlserver如何根据当前日期获得上月某一天的日期
望采纳--根据当前时间查询上月26号的日期
SELECT CONVERT(varchar(10), CONVERT(varchar(8),dateadd(month,-1,getdate()),23)+'26' , 120)
--根据当前时间查询本月月25号的日期
SELECT CONVERT(varchar(10), CONVERT(varchar(8),dateadd(month,0,getdate()),23)+'25' , 120)
试试select dateadd
例如:向日期加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000
DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期
值 缩 写(Sql ) (Access 和 ASP) 说明
Year Yy yyyy 年 1753 ~ 9999
Month Mm m 月1 ~ 12
Day of year Dy y 一年的日数,一年中的第几日 1-366
Day Dd d 日,1-31
Weekday Dw w 一周的日数,一周中的第几日 1-7
Week Wk ww 周,一年中的第几周 0 ~ 51
Hour Hh h 时0 ~ 23
Minute Mi n 分钟0 ~ 59
Second Ss s 秒 0 ~ 59
Millisecond Ms - 毫秒 0 ~ 999
SELECT CONVERT(CHAR(8),DATEADD(Month,-1,GETDATE()),120)+'25'
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。