MS SQL Server 数据库日期时间函数的应用
2010-08-10 10:16
435 查看
因为实际应用中经常会用到日期时间,所以需要总结一下实际的应用。在网上找了一些并总结了如下的一些应用:
1、定义日期时间变量,并设置日期时间
2、获取当前日期时间,获取第一天
修改 GETDATE() 部分,可以获取指定日期的本年、月第一天,下同。[/code]
3、获取最后时间
4、获取星期几
5、获取某月、季、年的天数
6、判断是否闰年
7、数据类型转换
8、格式化日期时间
参考:
非常详细MSSQL数据库时间日期函数的应用(日期相加,日期相减等等)
SQL SERVER日期函数应用
1、定义日期时间变量,并设置日期时间
DECLARE @Date datetime; -- 定义日期时间变量 SET @Date = '2010-8-10'; -- 设置日期 SET @Date = '10:18:20'; -- 设置时间 SET @Date = '2010-8-10 10:18:20.123'; -- 设置日期和时间
2、获取当前日期时间,获取第一天
SELECT GETDATE(); -- 获取当前系统日期和时间 SELECT DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0); -- 获取当前日期 SELECT DATEADD(week, DATEDIFF(week, 0, GETDATE()), 0); -- 获取本周一 SELECT DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0); -- 获取本月第一天 SELECT DATEADD(quarter, DATEDIFF(quarter, 0, GETDATE()), 0); -- 获取本季第一天 SELECT DATEADD(year, DATEDIFF(year, 0, GETDATE()), 0); -- 获取本年第一天
修改 GETDATE() 部分,可以获取指定日期的本年、月第一天,下同。[/code]
3、获取最后时间
SELECT DATEADD(millisecond, -3, DATEADD(week, DATEDIFF(week, 0, GETDATE()) + 1, 0)); -- 获取本周最后时间 SELECT DATEADD(millisecond, -3, DATEADD(month, DATEDIFF(month, 0, GETDATE()) + 1, 0)); -- 获取本月最后时间 SELECT DATEADD(millisecond, -3, DATEADD(quarter, DATEDIFF(quarter, 0, GETDATE()) + 1, 0)); -- 获取本季最后时间 SELECT DATEADD(millisecond, -3, DATEADD(year, DATEDIFF(year, 0, GETDATE()) + 1, 0)); -- 获取本年最后时间
4、获取星期几
SELECT DATENAME(weekday, GETDATE()) -- 获取星期几
5、获取某月、季、年的天数
-- 获取本月天数 SELECT DAY(DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, GETDATE()) + 1, 0))); -- 获取本月天数 SELECT DATEDIFF(d, DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0), DATEADD(m, DATEDIFF(m, 0, GETDATE()) + 1, 0)); -- 获取本季天数 SELECT DATEDIFF(d, DATEADD(q, DATEDIFF(q, 0, GETDATE()), 0), DATEADD(q, DATEDIFF(q, 0, GETDATE()) + 1, 0)); -- 获取本年天数 SELECT DATEDIFF(d, DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0), DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, 0));
6、判断是否闰年
SELECT CASE DAY(DATEADD(d, -1, DATEADD(m, 2, DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0)))) WHEN 28 THEN '平年' ELSE '闰年' END;
7、数据类型转换
SELECT CONVERT(varchar, GETDATE(), 112); -- "20100818" SELECT CONVERT(varchar, GETDATE(), 20); -- "2010-08-18 8:28:38" SELECT CONVERT(varchar, GETDATE(), 21); -- "2010-08-18 8:28:38.888" SELECT CONVERT(datetime, '2010-08-18 8:28:38.888'); -- 字符串转日期时间
8、格式化日期时间
DECLARE @Date datetime; SET @Date = GETDATE(); SELECT CONVERT(varchar, YEAR(@Date)) + '年' + CONVERT(varchar, MONTH(@Date)) + '月' + CONVERT(varchar, DAY(@Date)) + '日';
参考:
非常详细MSSQL数据库时间日期函数的应用(日期相加,日期相减等等)
SQL SERVER日期函数应用
相关文章推荐
- 数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)
- ms sql server sql 查询所有数据库、表名、表字段总结
- MS SQL Server 2000版在windows server 2003企业版系统上运行时造成数据库suspect的解决方法
- MS Sql Server 数据库或表修复(DBCC CHECKDB)
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- 数据库移植——从MySQL Server到MS SQL Server
- oracle通过透明网关(Oracle Transparent Geteways),访问ms sql server和其他数据库
- MS SQL Server 2008数据库怎么实现数据库同步备份?
- 数据库由HSQL改为MS SQL SERVER
- MS SQLServer 批量附加数据库
- ms sql server 创建数据库,表。
- MS SQL Server 2008 master数据库损坏故障解决
- 使用SQL脚本创建数据库,操作主键、外键与各种约束(MS SQL Server)
- MS SQL Server 数据库命名规范[转]
- MS Sql Server查询磁盘的可用空间,数据库数据文件及日志文件的大小及利用率
- MS SQL Server 2000 数据库使用备份还原造成dbo登录名丢失解决法(转)
- QTP中MS SQL SERVER数据库连接的一种简单方法
- 如何使用ArcIMS在MS SQLSERVER的ArcSDE中进行跨不同数据库的关联?-转载自ESRI中国在线支持中心
- ms sql server 2005数据库日志文件过大,需要清除或者清空
- MS SQLServer 数据库日志文件收缩