SQL Server ->> 时间函数: EOMONTH, DATEFROMPARTS, TIMEFROMPARTS, DATETIMEFR...
上面几个函数都是SQL Server 2012新增的时间函数。
EOMONTH
返回传入时间的月结束日,返回数据类型为DATE
SELECT EOMONTH(GETDATE())
结果为
2016-01-31
DATEFROMPARTS
如同C#或者Java声明一个DATETIME实例那样通过传入YEAR, MONTH, DAY的数字值得到一个DATETIME的实例。这里也是一样。通过传入年月日来得到一个DATE。但是如果你一旦传入的参数无法构造出一个合法的时间,就会报错。
DECLARE @Year int, @Month int, @Day int SET @Year = 2012 SET @Month = 02 SET @Day = 30 SELECT DATEFROMPARTS (@Year, @Month, @Day) AS MyDate
结果就是
Msg 289, Level 16, State 1, Line 61 Cannot construct data type date, some of the arguments have values which are not valid.
如果是合法
DECLARE @Year int, @Month int, @Day int SET @Year = 2012 SET @Month = 02 SET @Day = 28 SELECT DATEFROMPARTS (@Year, @Month, @Day) AS MyDate
那就是
2012-02-28
TIMEFROMPARTS
和DATEFROMPARTS类似,只不过传入的变成HOUR, MINUTE, SECOND,MILLISECOND和MILLISECOND精确位数,然后返回的是一个TIME类型。有一个需要注意的是这个函数的第五个参数是不支持整型变量的,必须是显示常量传入。
比如
DECLARE @Hour int, @Minutes int, @Seconds int, @FractionsOfASecond int SET @Hour = 15 SET @Minutes = 23 SET @Seconds = 47 SET @FractionsOfASecond = 500 SELECT TIMEFROMPARTS(@Hour, @Minutes, @Seconds, @FractionsOfASecond, 3) AS MyTime
结果
15:23:47.500
如果传入一个NULL值呢
DECLARE @Hour int, @Minutes int, @Seconds int, @FractionsOfASecond int SET @Hour = 15 SET @Minutes = 23 SET @Seconds = 47 SET @FractionsOfASecond = 500 SELECT TIMEFROMPARTS(@Hour, @Minutes, @Seconds, NULL, 3) AS MyTime
结果也是NULL
DATETIMEFROMPARTS
这个就是前面两个的结合。特点也就是传入NULL值就是结果变NULL,不合法值就报错。奇怪的是它没有了TIMEFROMPARTS的精确位数参数。
DECLARE @Year int, @Month int, @Day int, @Hour int DECLARE @Minutes int, @Seconds int, @MilliSeconds int SET @Year = 2012 SET @Month = 07 SET @Day = 23 SET @Hour = 17 SET @Minutes = 27 SET @Seconds = 49 SET @MilliSeconds = 0 SELECT DATETIMEFROMPARTS (@Year, @Month, @Day, @Hour, @Minutes, @Seconds, @MilliSeconds) AS MyDateTime
结果
2012-07-23 17:27:49.000
DATETIMEOFFSETFROMPARTS
这个比较有意思。加入了TIMEZONE。
DECLARE @Year int, @Month int, @Day int DECLARE @Hour int, @Minutes int, @Seconds int DECLARE @FractionsOfASecond int DECLARE @HourOffSet int, @MinuteOffSet int SET @Year = 2012 SET @Month = 02 SET @Day = 26 SET @Hour = 15 SET @Minutes = 57 SET @Seconds = 49 SET @FractionsOfASecond = 500 SET @HourOffSet = 7 SET @MinuteOffSet = 30 SELECT DATETIMEOFFSETFROMPARTS (@Year, @Month, @Day, @Hour, @Minutes, @Seconds, @FractionsOfASecond, @HourOffSet, @MinuteOffSet, 3) AS MyTimeZone
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
手把手教你用Kaggle开启机器学习之旅
我经常被朋友和大学生问到“如何入门机器学习或数据科学”。 所以,这是我的答案…… 前言 早些时候,我不太确定。我会说类似“学这门课”或“读这本教程”或“先学Python(这是我做过的事情)”。但是现在,随着我越来越深入这个领域,我开始意识到我采取的措施的缺点。 所以,事后看来,我认为“入门” 机器学习或数据科学的最佳途径可能是通过Kaggle。 在这篇文章中,我将告诉您为什么我这么认为,以及 如果我的推理令您信服,您将如何做到这一点。 注意:我是一名学生。我不是专业的数据科学家或机器学习工程师。我绝对不是Kaggle的专家。所以,请有保留地采纳我的意见和观点。 :-) 但首先,请允许我介绍一下Kaggle并澄清一些关于它的误解。 你可能听说过Kaggle作为一个网站,为机器学习比赛颁发令人难以置信的现金奖励。 Kaggle举办的比赛获得最高奖金 (
- 下一篇
标准坐标系与火星坐标系(高德)百度坐标系之间互转
这里先给大家介绍几个坐标系: 1.WGS84:国际坐标系,为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系。2.GCJ02:火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。3.BD09:为百度坐标系,在GCJ02坐标系基础上再次加密。其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标 今天我要说的是,我们大部分的定位GPS设备以及硬件都是获取的WGS84坐标也就是我们说的标准坐标系 但是我们软件应用层一般使用的高德,百度,腾讯的地图API,如果直接使用标准坐标系定位是会存在偏差的,所以就需要我们进行转换才能使用,这里给大家提供几种方式: 1.硬件设备获取的GPS坐标格式是 转换成度格式: 北纬:29+37.1453/60=29.61908 东经:106+29.7713/60=106.49618 就是需要我们转换后才能使用,在最近一个项目中,硬件设备传到服务器的GPS格式是【3028.0979】【10400.4032】但是服务器接收到是【30, 28, 9, 79】【1, 4, 0, 40, 32】...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7设置SWAP分区,小内存服务器的救世主
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8编译安装MySQL8.0.19