SQLServer学习笔记<>日期和时间数据的处理(cast转化格式、日期截取、日期的加减)和 case表达式
日期和时间数据的处理。
(1)字符串日期
‘20080301’,这一串为字符串日期,但必须保证为四位的年份,两位的月份,两位的日期。例如,查询订单表日期大于‘20080301’。可以这样写:
1 select * from sales.orders
2 where orderdate>'20080301'
结果如图所示:

(2)cast进行转化。例如,可以讲‘20080301’转化为时间类型。其结果跟上图一样。
1 select * from sales.orders
2 where orderdate>cast('20080301' as datetime)
(3)datepart,截取日期中的某一段,year代表截取年,month代表截取月份,day代表截取日期。等等。。。。。
例如:截取当前时间的某一部分。
1 select datepart(year,getdate()) as N'年份',
2 datepart(month,getdate()) as N'月份',
3 datepart(day,getdate()) as N'日',
4 datepart(hour,getdate()) as N'时',
5 datepart(minute,getdate()) as N'分',
6 datepart(second,getdate()) as N'秒'
结果如图:

(4)特殊日期截取部分,例如:
1 select datepart(dayofyear,getdate()) as N'一年中的第几天',
2 datepart(weekday,getdate()) as N'一星期中第几天',
3 datepart(week,getdate()) as N'今年的第几周'
结果如图:

(5)日期的加减。dateAdd(增长单位(年、月、日),步长(增长多少),基数),datediff(单位,步长,基数)。
例如:当前日期加20天是多少?算一算我深爱的祖国建国多久?本屌丝今年多大?
1 select dateadd(day,20,getdate()) as N'20天后的是什么日子',
2 datediff(year,'19491001',getdate()) as N'祖国成立这么多年啦',
3 datediff(year,'19911002',getdate()) as N'屌丝多大啦'

(6)cast与convert,两者都能讲字符串或者其他形式的转化为指定的类型。不同的是:convert转化时可以指定转化的样式,cast则直接转化。
例如:
1 select convert(nvarchar,getdate(),112) as N'转化后的形式',
2 left( convert(nvarchar,getdate(),112),6) as N'取出年月'
结果如图:

case表达式
(1)简单表达式,例如,要查询雇员表里面地区(region)为WA的用“华盛顿地区”代替表示。
1 select firstname,lastname,
2 case region
3 when 'WA' then '华盛顿地区'
4 else '其他地区'
5 end
6 from hr.employees

(2)搜索表达式,在这里我们先查询下雇员表(hr.employees里面的信息。
1 select firstname,lastname,region
2 from hr.employees

假如对于region为null的地区,我们想用“未知地区”来表达,该怎么写了?此时就需要用到搜索表达式,可以这样写:
1 select firstname,lastname,
2 case when region ='WA' then '华盛顿地区'
3 when region is null then '未知地区'
4 else '其他地区'
5 end
6 from hr.employees
结果如图所示:

SQLServer学习笔记<>日期和时间数据的处理(cast转化格式、日期截取、日期的加减)和 case表达式的更多相关文章
- SQLServer学习笔记系列3
一.写在前面的话 今天又是双休啦!生活依然再继续,当你停下来的时候,或许会突然显得不自在.有时候,看到一种东西,你会发现原来在这个社会上,优秀的人很多,默默 吃苦努力奋斗的人也多!星期五早上按时上班, ...
- SQLServer学习笔记系列2
一.写在前面的话 继上一次SQLServer学习笔记系列1http://www.cnblogs.com/liupeng61624/p/4354983.html以后,继续学习Sqlserver,一步一步 ...
- SQLServer 学习笔记之超详细基础SQL语句 Part 8
Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 7------------------- --触发器str_trigge ...
- SQLServer学习笔记系列5
一.写在前面的话 转眼又是一年清明节,话说“清明时节雨纷纷”,武汉的天气伴随着这个清明节下了一场暴雨,整个城市如海一样,朋友圈渗透着清明节武汉看海的节奏.今年又没有回老家祭祖,但是心里依然是怀念着那些 ...
- SQLServer学习笔记<>相关子查询及复杂查询
二.查询缺少值的查询 在这里我们加入要查询2008年每一天的订单有多少?首先我们可以查询下订单表的订单日期在2008年的所有订单信息. 1 select distinct orderdate,coun ...
- SQLServer 学习笔记之超详细基础SQL语句 Part 12(The End)
Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 11------------------- 现在,我们希望从 " ...
- SQLServer 学习笔记之超详细基础SQL语句 Part 6
Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 5------------------- 28 聚合函数 --求平均分 ...
- SQLServer 学习笔记之超详细基础SQL语句 Part 2
Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 1------------------- 建立如下数据表 CREATE ...
- SQLServer学习笔记系列6
一.写在前面的话 时间是我们每个人都特别熟悉的,但是到底它是什么,用什么来衡量,可能很多人会愣在那里.时间可以见证一切,也可以消磨一切,那些过往的点点滴滴可思可忆.回想往年清明节过后,在家乡的晚上总能 ...
随机推荐
- java 线上问题定位工具
在JDK的bin目录下有很多命令行工具: 我们可以看到各个工具的体积基本上都稳定在27kb左右,这个不是JDK开发团队刻意为之的,而是因为这些工具大多数是jdk\lib\tools.jar类库的一层薄 ...
- 链表操作,空间复杂度要求为O(1)
对于O(1)的空间复杂度要求,不能对链表进行复制等操作,双指针法对处理该类问题比较有效. 同时由于链表头结点的特殊性,可以考虑引入一个空的头结点来辅助操作.
- mysql的binlog安全删除
理论上,应该在配置文件/etc/my.cnf中加上binlog过期时间的配置项,expire_logs_days = 10 但是如果没有加这一项,随着产生越来越多的binlog,磁盘被吃掉了不少.可以 ...
- CocoaPods看的三篇文章
http://www.bubuko.com/infodetail-425274.html//有图片 http://www.cnblogs.com/jys509/p/4839803.html http: ...
- Effective C++ 3.资源管理
//条款13:以对象管理资源 // 1.C++程序中最常使用的资源就是动态分配内存,并且还包括文件描述器,互斥锁,GDI对象.数据库连接.网络socket等.不管哪一种资源,当不再使用的时候必须将其归 ...
- 转:Python获取随机数(英文)
Random - Generate pseudo-random numbers Source code: Lib/random.py This module implements pseudo-ran ...
- c++之路进阶——codevs1286(郁闷的出纳员)
1286 郁闷的出纳员 2004年NOI全国竞赛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description OIER公司 ...
- @Responsebody与@RequestBody
前台发送请求后台用什么接收-->@RequsetMapping 何时使用@ResponseBody-->一般在异步获取数据时使用,后台传的数据切成ison传给前台 @Responsebod ...
- linux第5天 socket api
IPv4套接口地址结构通常也称为“网际套接字地址结构”,它以“sockaddr_in”命名,定义在头文件<netinet/in.h>中 通用地址结构用来指定与套接字关联的地址.以socka ...
- ajax和servlet交互,表单日历插件,表单验证,form.js
我的index.jsp <body> <a>点我获取数据</a> <table border=1px> <tr> <td>ID& ...