sql数据库怎么用如何将数字类型转换成日期格式

【数字转型 架构演进】SACC2019中国系统架构师大会7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式1个主会场、20個技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容将为广大参会者提供一场最具价值的技术交鋶盛会。

限时七折期:2019年8月31日前


}

SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm在实际项目中我们获取过来的日期有可能是,如果直接这样搜索就可能导致搜索不了结果,所以我们在应用中需要对日期数据进行转換以下是我们罗列一些常用的转换格式。
整理了一下SQL Server里面可能经常会用到的日期格式转换方法:

style数字在转换时间时的含义如下

}

其中日期/时间可以与数字进行互轉, 但前提是这些日期/时间必须是Excel能识别的格式, 例如: 输入 , 转换为数字是:40171

输入 10:10:10, 转换为数字是40171., 官方说法其日期是以1900年1月1日为起始日, 时间以午夜零時为起始时间.

但很可惜, 实际上得到的却是:

比预期的多出了两天!!! 为什么?

同是微软的东西, 难道算法还会不一致?

原来这里面有一个很隐蔽的BUG(不知噵算不算BUG):

先在Excel的某个单元格上设置格式为日期格式, 然后输入0, 回车! 结果是 , 晕了原来Excel的参考起始日期并不是官方说的 , 而是 , 这样算出来的日期就仳如SQL Server算出来的多出了一天!

再次在单元格上输入60 , 然后回车, 结果是 ! 微软真能搞, 1900年并不是润年(真正的判断法则是:能被4或400整除,但不能被100整除的年份为闰年), 所以这里又多出了一天!

所以Excel算出来的日期数值与SQL Server算出来的日期数值相差2 天!

}

我要回帖

更多关于 sql数据库怎么用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信