sql 时间相关
1、常用日期方法(下面的GetDate() = '2006-11-08 13:37:56.233')
(1)DATENAME ( datepart ,date )
返回表示指定日期的指定日期部分的字符串。Datepart详见下面的列表.
SELECT DateName(day,Getdate()) –返回8
(2)DATEPART ( datepart , date )
返回表示指定日期的指定日期部分的整数。
SELECT DATEPART(year,Getdate()) –返回2006
(3)DATEADD (datepart , number, date )
返回给指定日期加上一个时间间隔后的新datetime 值。
SELECT DATEADD(week,1,GetDate()) --当前日期加一周后的日期
(4)DATEDIFF ( datepart , startdate , enddate )
返回跨两个指定日期的日期边界数和时间边界数。
SELECT DATEDIFF(month,'2006-10-11','2006-11-01') --返回1
(5)DAY ( date )
返回一个整数,表示指定日期的天datepart 部分。
SELECT day(GetDate()) –返回8
(6)GETDATE()
以datetime 值的SQL Server 2005 标准内部格式返回当前系统日期和时间。
SELECT GetDate() --返回2006-11-08 13:37:56.233
(7)MONTH ( date )
返回表示指定日期的“月”部分的整数。
SELECT MONTH(GETDATE()) --返回11
(8)YEAR ( date )
返回表示指定日期的“年”部分的整数。
SELECT YEAR(GETDATE()) --返回2006
2、取特定日期
(1)获得当前日期是星期几
SELECT DateName(weekday,Getdate()) --Wednesday
(2)计算哪一天是本周的星期一
SELECT DATEADD(week, DATEDIFF(week,'1900-01-01',getdate()), '1900-01-01') --返回2006-11-06 00:00:00.000 或 SELECT DATEADD(week, DATEDIFF(week,0,getdate()),0)
(3)当前季度的第一天
SELECT DATEADD(quarter, DATEDIFF(quarter,0,getdate()), 0)—返回2006-10-01 00:00:00.000
(4)如何取得某个月的天数
SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,'2006-02-03')+1,0))) —返回28
(5)一个季度多少天
declare @m tinyint,@time smalldatetime
select @m=month(getdate()) select @m=case when @m between 1 and 3 then 1 when @m between 4 and 6 then 4 when @m between 7 and 9 then 7 else 10 end
select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01' select datediff(day,@time,dateadd(mm,3,@time)) —返回92
(6)获得年月日(yyyy-MM-dd)
SELECT CONVERT(VARCHAR(10),GETDATE(),120) –返回2006-11-08
3、其它
(1)--下面的示例将日期指定为数字。数据库引擎将0 解释为1900 年1 月1 日。 SELECT MONTH(0), DAY(0), YEAR(0) –返回1 1 1900
--下面两句是等效的 SELECT DATENAME(WEEKDAY,0) SELECT DATENAME(WEEKDAY,'1900-01-01')
(2)SET DATEFIRST { number | @number_var }
将一周的第一天设置为从1 到7 的一个数字。
SET DATEFIRST 1 --表示一周的第一天是“星期一" SELECT DATENAME(WEEKDAY,GETDATE()) --Wednesday SELECT DATEPART(weekday,GETDATE()) --返回3 --查看当前设置情况 select @@DATEFIRST
(3)SET DATEFORMAT { format | @format_var }
设置用于输入datetime 或smalldatetime 数据的日期部分(月/日/年)的顺序。 ...有效参数包括mdy、dmy、ymd、ydm、myd 和dym。 ...该设置仅用在将字符串转换为日期值时的解释中。它不影响日期值的显示。 ...SET DATEFORMAT 的设置是在执行或运行时设置,而不是在分析时设置。 ...SET DATEFORMAT 将覆盖SET LANGUAGE 的隐式日期格式设置。 下面是例子: -- Set date format to year, day, month. SET DATEFORMAT ydm; GO DECLARE @datevar DATETIME; SET @datevar = '1998/31/12'; SELECT @datevar AS DateVar; GO -- Set date format to year, month, day. SET DATEFORMAT ymd; GO DECLARE @datevar DATETIME; SET @datevar = '1998/12/31'; SELECT @datevar AS DateVar; GO
sql 时间相关的更多相关文章
- SQL时间相关
SQL --本周第一天 SELECT DATEADD(Day,-(DATEPART(Weekday,getdate())+@@DATEFIRST-)%,getdate()) --or ,getdate ...
- SQL时间相关 - SQL日期,时间比较
SQL Server 中时间比较 例子: select count(*) from table where DATEDIFF ([second], '2004-09-18 00:00:18', '20 ...
- PL/SQL学习笔记之日期时间
一:PL/SQL时间相关类型 PL/SQL提供两个和日期时间相关的数据类型: 日期时间(Datetime)数据类型 时间间隔类型 二:日期时间类型 datetime数据类型有: DATE TIMEST ...
- SQL SERVER 时间相关操作笔记
1.DATEADD函数: A. MSDN上的示例:http://msdn.microsoft.com/zh-cn/library/ms186819%28v=sql.90%29.aspx
- mysql 时间相关sql , 按天、月、季度、年等条件进行查询
#今天 select * from or_order_task where to_days(created_date)=to_days(now()); #近七天 select * day )<= ...
- java获取获得Timestamp类型的当前系统时间。以及java.util.date 、java.sql.Date之间的转换
java获取取得Timestamp类型的当前系统时间java获取取得Timestamp类型的当前系统时间 格式:2010-11-04 16:19:42 方法1: Timestamp d = new T ...
- sql经典语句大全
SQL Server提供了大量的函数, 但是在一些常见的如, 字符串拆分, 字符提取,过滤等没有对应的处理, 本帖主要收集一些常见的函数, 整理如下: ------------------------ ...
- jdbc 日期时间相关的类型
jdbc 日期时间相关的类型 1.sql.Date sql包中的日期类Date是util包中Date类的子类,实际上也是util.Date类的子集.它只处理年月日,而忽略小时和分秒,用以代表SQL的D ...
- sql 取时间 问题集
一. AND B.TRAFFICE_DATE>dateadd(day,5,(select getdate())) dateadd(day,5,(select getdate())):为当前时间+ ...
随机推荐
- springboot中的几种scope
写在开始 技术点 接受方式 判读在线方式 接受数据 发送数据 敬上代码 入口函数 消息处理 单聊实现 传送门: 回到顶部 写在开始 上面一篇写了一篇使用WebSocket做客户端,然后服务端是sock ...
- ofbiz数据库表结构设计(3)- 订单ORDER
对于订单来说,主要的表就是ORDER_HEADER和ORDER_ITEM.ORDER_HEADER就是所谓的订单头,一条记录代表一条订单. ORDER_PAYMENT_PREFERENCE是订单的支付 ...
- javascript实现可拖动DIV层
原文发布时间为:2009-05-04 -- 来源于本人的百度文章 [由搬家工具导入] 注意以下红色部分是关键.如果不使用 document.documentElement,而使用docume ...
- Java下使用Swing来进行图形界面开发
1. GUI从创建window开始,通常会使用JFrame.JFrame frame = new JFrame(); 2. 你可以这样加入按钮,文字字段等组件.frame.getContentPane ...
- [LeetCode] Binary Tree Postorder Traversal dfs,深度搜索
Given a binary tree, return the postorder traversal of its nodes' values. For example:Given binary t ...
- 《手把手教你学C语言》学习笔记(4)---代码规范
编程过程中需要遵守编译器的各种约定,例如以下代码: 1 #include <stdio.h> 2 3 int main(int argc, char **argv) 4 { 5 print ...
- XPath语法 在C#中使用XPath例子与用法
XPath可以快速定位到Xml中的节点或者属性.XPath语法很简单,但是强大够用,它也是使用xslt的基础知识.示例Xml: <?xml version="1.0" enc ...
- hdu 4525(数学)
威威猫系列故事——吃鸡腿 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tota ...
- hdu 1385(Floyed+打印路径好题)
Minimum Transport Cost Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O ...
- C# .NET4.0 改为 到.NET2.0 时 TypedTableBase 报错解决方法
.NET 4.0 降版本 到.NET 2.0.不出意外,问题必然来了. 编译错误一: 错误 1 命名空间“System”中不存在类型或命名空间名称“Linq”(是缺少程序集引用吗?)解决: 删掉该引用 ...