SQL字串字段中有中文的时间资料转换成Datetime格式

作者:邁向程式殿堂  发布日期:2013-05-01 19:48:09

通常在资料栏位中要摆放时间性的资料,通常格式会设定为datetime或是Datetime2等时间型态,这样想要进行相关的

时间运算并无太大问题。但是,今天若是遇到在非时间型态的栏位中存放时间性的资料时,其中,时间资料内出现

「上午」或「下午」这样中文字样,要把非时间栏位的资料先转换成Datetime再做运算就不容易。
 


 


 

若是在AP处理的话,可以参考[C#]DateTime.ParseExact 转换这篇将运算改用AP去做。若是要在SQL中做,早期大概会用Replace方式进行。不过,在SQL2012出现一个新语法,可以让处理这样问题变简单。单纯的用CAST或是Convert是没有办法针对此类型资料转换的 www.it165.net


SQL语法可用Parse的语法做此转换。语法如下

PARSE ( string_value AS data_type [ USING culture ] )在还没有下指令前,可以看到资料如下表

 


 

SQL指令如下:

select Parse(starttime as datetime using 'zh-tw') as starttime,Parse(Endtime as datetime using 'zh-tw') as starttime from AAA重新查询的结果如下,可以发现中文都不见了,且自动帮我们转换成24小时制的时间。这样就变成很简单了

 


 

此外,因为资料栏位中具有中文,目前在culture部分只能使用 zh-tw 和 zh-cn两种,不然会出现Type的错误。

其他运用Parse的资料转换参考,请参阅MSDN:http://msdn.microsoft.com/en-us/library/hh213316.aspx

 

Tag标签: SQL   Datetime  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规