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')


函数参数/功能

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


access
asp 中用date()now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Accessasp中,这些函数的用法也类似


举例:
1.GetDate()
用于 sql server :select GetDate()

2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')
返回值为 514592

DateDiff('d','2005-07-20','2005-7-25 22:56:32')
返回值为 5

3.DatePart('w','2005-7-25 22:56:32')
返回值为 2 即星期一(周日为1,周六为 7)
DatePart('d','2005-7-25 22:56:32')
返回值为 2525

DatePart('y','2005-7-25 22:56:32')
返回值为 206即这一年中第206
DatePart('yyyy','2005-7-25 22:56:32')
返回值为 20052005
2.       查询某个日期之间的记录数据:
select * from t_business_product where hit_count>1000 and last_date>'2005-02-01' and last_date<='2005-06-05'order by id desc
go
查询最近一个月内的点击率大于100的记录数据:
select * from t_business_product where hit_count>100 and datediff(Dd,last_date,getdate())<=30 order by id desc
go
查询最近一周内的点击率大于100的记录数据:
select * from t_business_product where hit_count>100 and datediff(Dw,last_date,getdate())<=7 order by id desc
go
查询某一年(2006)点击率大于300的记录数据:
select * from t_business_product where hit_count>300 and DatePart(Yy,last_date)=2006 order by id desc
go

select * from t_business_product where hit_count>300 and DatePart(Year,last_date)=2006 order by id desc
go
3.       SQL Server中文版的默认的日期字段datetime格式是 yyyy-mm-dd Thh:mm:ss.mmm
例如
:
select getdate()
2004-09-12 11:06:08.177
整理了一下SQL Server里面可能经常会用到的日期格式转换方法
:
举例如下
:
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08

select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20040912110608

select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12

select CONVERT(varchar(12) , getdate(), 112 )
20040912

select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12

select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004

select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004

select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004

select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004

select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004

select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004

select CONVERT(varchar(12) , getdate(), 108 )
11:06:08

select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1

select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004

select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1

select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177
4.       CAST CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。CAST CONVERT 提供相似的功能。


语法
使用 CAST

CAST ( expression AS data_type )

使用 CONVERT

CONVERT (data_type[(length)], expression [, style])

参数
expression

是任何有效的 Microsoft&reg; SQL Server&#8482; 表达式。有关更多信息,请参见表达式。

data_type

目标系统所提供的数据类型,包括 bigint sql_variant。不能使用用户定义的数据类型。有关可用的数据类型的更多信息,请参见数据类型。

length

nchar
nvarcharcharvarcharbinary varbinary 数据类型的可选参数。

style

日期格式样式,借以将 datetime smalldatetime 数据转换为字符数据(ncharnvarcharcharvarcharnchar nvarchar 数据类型);或者字符串格式样式,借以将 floatrealmoney smallmoney 数据转换为字符数据(ncharnvarcharcharvarcharnchar nvarchar 数据类型)。

SQL Server
支持使用科威特算法的阿拉伯样式中的数据格式。

在表中,左侧的两列表示将 datetime smalldatetime 转换为字符数据的 style 值。给 style 值加 100,可获得包括世纪数位的四位年份 (yyyy)

不带世纪数位 (yy) 带世纪数位 (yyyy)
标准

输入/输出 **
- 0
100 (*)  默认值 mon dd yyyy hh:miAM(或 PM

1 101
美国 mm/dd/yyyy
2 102 ANSI yy.mm.dd
3 103
英国/法国
dd/mm/yy
4 104
德国
dd.mm.yy
5 105
意大利
dd-mm-yy
6 106 - dd mon yy
7 107 - mon dd, yy
8 108 - hh:mm:ss
- 9
109 (*)  默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM

10 110
美国 mm-dd-yy
11 111
日本
yy/mm/dd
12 112 ISO yymmdd
- 13
113 (*)  欧洲默认值 + 毫秒
dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20
120 (*)  ODBC 规范
yyyy-mm-dd hh:mm:ss[.fff]
- 21
121 (*)  ODBC 规范(带毫秒)
yyyy-mm-dd hh:mm:ss[.fff]
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm
(不含空格)

- 130*
科威特 dd mon yyyy hh:mi:ss:mmmAM
- 131*
科威特
dd/mm/yy hh:mi:ss:mmmAM


*   
默认值(style 0 1009 10913 11320 12021 121)始终返回世纪数位 (yyyy)

**
当转换为 datetime 时输入;当转换为字符数据时输出。
***
专门用于 XML。对于从 datetime smalldatetime character 数据的转换,输出格式如表中所示。对于从 floatmoney smallmoney character 数据的转换,输出等同于 style 2。对于从 real character 数据的转换,输出等同于 style 1



重要 默认情况下,SQL Server 根据截止年份 2049 解释两位数字的年份。即,两位数字的年份 49 被解释为 2049,而两位数字的年份 50 被解释为 1950。许多客户端应用程序(例如那些基于 OLE 自动化对象的客户端应用程序)都使用 2030 作为截止年份。SQL Server 提供一个配置选项("两位数字的截止年份"),借以更改 SQL Server 所使用的截止年份并对日期进行一致性处理。然而最安全的办法是指定四位数字年份。


当从 smalldatetime 转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。当从 datetime smalldatetime 值进行转换时,可以通过使用适当的 char varchar 数据类型长度来截断不需要的日期部分。

下表显示了从 float real 转换为字符数据时的 style 值。

输出
0
(默认值)最大为 6 位数。根据需要使用科学记数法。
1
始终为 8 位值。始终使用科学记数法。
2
始终为 16 位值。始终使用科学记数法。


在下表中,左列表示从 money smallmoney 转换为字符数据时的 style 值。

输出
0
(默认值)小数点左侧每三位数字之间不以逗号分隔,小数点右侧取两位数,例如 4235.98
1
小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如 3,510.92
2
小数点左侧每三位数字之间不以逗号分隔,小数点右侧取四位数,例如 4235.9819

返回类型
返回与 data type 0 相同的值。
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 基于MATLAB实现的有限差分法实验报告用MATLAB的有限差分法计算槽内电位;对比解析法和数值法的异同点;选取一点,绘制收敛曲线;总的三维电位图+使用说明文档 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2020b;若运行有误,根据提示GPT修改;若不会,私信博主(问题描述要详细); 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可后台私信博主; 4.1 期刊或参考文献复现 4.2 Matlab程序定制 4.3 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信 5、欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值