一、
sql server日期时间函数
Sql Server中的日期与时间函数
1
. 当前系统日期、时间
select
getdate
()
2
.
dateadd
在向指定日期加上一段时间的基础上,返回新的
datetime
值
例如:向日期加上2天
select
dateadd
(
day
,
2
,
'
2004-10-15
'
)
--
返回:2004-10-17 00:00:00.000
3
.
datediff
返回跨两个指定日期的日期和时间边界数。
select
datediff
(
day
,
'
2004-09-01
'
,
'
2004-09-18
'
)
--
返回:17
4
.
datepart
返回代表指定日期的指定日期部分的整数。
select
DATEPART
(
month
,
'
2004-10-15
'
)
--
返回 10
5
.
datename
返回代表指定日期的指定日期部分的字符串
select
datename
(weekday,
'
2004-10-15
'
)
--
返回:星期五
6
.
day
(),
month
(),
year
()
--
可以与datepart对照一下
select
当前日期
=
convert
(
varchar
(
10
),
getdate
(),
120
)
,当前时间
=
convert
(
varchar
(
8
),
getdate
(),
114
)
select
datename
(dw,
'
2004-10-15
'
)
select
本年第多少周
=
datename
(week,
'
2004-10-15
'
)
,今天是周几
=
datename
(weekday,
'
2004-10-15
'
)
二、日期格式转换
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
函数
|
参数/功能
|
GetDate( )
|
返回系统目前的日期与时间
|
DateDiff (interval,date1,date2)
|
以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
|
DateAdd (interval,number,date)
|
以interval指定的方式,加上number之后的日期
|
DatePart (interval,date)
|
返回日期date中,interval指定部分所对应的整数值
|
DateName (interval,date)
|
返回日期date中,interval指定部分所对应的字符串名称
|
参数 interval的设定值如下:
值
|
缩 写(Sql Server)
|
Access 和 ASP
|
说明
|
Year
|
Yy
|
yyyy
|
年 1753 ~ 9999
|
Quarter
|
Qq
|
q
|
季 1 ~ 4
|
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
|
一、sql server日期时间函数Sql Server中的日期与时间函数 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如:向日期加上2天 select dateadd(day,2,'2004-10-15') --返回:2004-10-17
select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0
–查询当天(2:
select * from info where DateDiff(dd,datetime,getdate())=0
–前30天
SELECT * FROM A where datediff(d,datetime,getdate()) <=30
SELECT * FROM A WHERE DATEDIFF(m, shijian
--
字符串
转
换函数
--convert --covert(类型(长度),表达式)
select 'abc'+ convert(varchar,2) --把数字
转
换成
字符串
,拼接
select convert(varchar(10),getdate(),100) --
日期
格式
--cast --cast(数据 as 类型(长度))
select 'abc'+ cast(3 as varchar)
1、当前
日期
:CURRENT_DATE格式为:’2019-06-18’
当前
时间
:CURRENT_TINE格式为:‘23:54:43’
当前
日期
和
时间
:CURRENT_TIMESTAMP、current_timestamp()、now() 、sysdate()格式为:‘2019-06-18 23:56:00’
sysdate()
日期
时间
函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。如:select now(), ...
convert(datetime,‘YYYY-MM-DD HH24:MI:SS’)
cast(‘YYYY-MM-DD HH24:MI:SS’ as datetime)
select convert(datetime,'2018-08-08 08:08:08);
0 或 100 (*) 默认值 mon dd yyyy hh:miAM(或 PM)
2. dateadd 在向指定
日期
加上一段
时间
的基础上,返回新的 datetime 值
例如:向
日期
加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000
3. datediff 返回跨两个指定
日期
的
日期
和
时间
边界数。
sel...
SELECT CONVERT(VARCHAR(4), GETDATE(), 12)
SELECT CONVERT(VARCHAR(6), GETDATE(), 12)
SELECT CONVERT(VARCHAR(6), GETDATE(), 112)
SELECT CONVERT(VARCHAR(8), GETDATE(), 112)
对某些表格数据进行查询时,常常有按照
时间
进行列值过滤的需求。
SQL
Server
内置函数CONVERT(data_type(length),data_to_be_converted,style)
常见的两种
转
换需求:
1.
日期
-->
字符串
2.
字符串
-->
日期
select getdate(); -- datetime
-- datetime --> string
declare @dateti
My
SQL
和
SQL
Server
是两种不同的关系型数据库管理系统,它们的语法有一些区别:
1. 数据类型:My
SQL
和
SQL
Server
支持的数据类型有些不同,例如My
SQL
支持SET和ENUM类型,而
SQL
Server
不支持。
2.
日期
和
时间
函数:My
SQL
和
SQL
Server
的
日期
和
时间
函数有些不同,例如My
SQL
使用NOW()函数获取当前
日期
和
时间
,而
SQL
Server
使用GETDATE()函数。
3.
字符串
函数:My
SQL
和
SQL
Server
的
字符串
函数也有些不同,例如My
SQL
使用CONCAT()函数连接
字符串
,而
SQL
Server
使用"+"运算符。
4. 存储过程和函数:My
SQL
和
SQL
Server
的存储过程和函数也有些不同,例如My
SQL
使用DELIMITER语句定义存储过程和函数的分隔符,而
SQL
Server
使用BEGIN和END语句。
总之,My
SQL
和
SQL
Server
虽然都是关系型数据库管理系统,但它们的语法有一些不同,需要根据具体情况选择合适的语法。