SQL server 的类型转换

最近写了点脚本,对涉及的一点类型转换做个总结。由于数据是从CSV文件中读取的,也就是用逗号(,)分割的文件类型,可以用EXcel打开,也可用文本文档打开,都没有什么关心,

  • 文件的读取。

     *.CSV文件都是有*.INI文件的对应的内容的。

     [<filename>.CSV]
     ColNameHeader = False  //是否读取列名
     Format = CSVDelimited
     CharacterSet = ANSI
     Col1=reference TEXT width 200
     Col2=***** TEXT width 200

     由于开始不知道具体文件类型大小,都列成了nvchar的,所以对所要导入的数据库中的float,datetime还有50个大小的都要处理。

     

ContractedBlock.gif ExpandedBlockStart.gif Code
/*
*{0} folder path
*{1}file name
*/
insert into table
SELECT 
* FROM
  OPENROWSET(
'MSDASQL',
  
'Driver={Microsoft Text Driver (*.txt; *.csv)};
    DEFAULTDIR={0};Extensions=CSV;',
  'SELECT * FROM "{1}.CSV"')

 

  • nvchar200到50 的读取,去掉第一个空格,然后读取前面的50
ContractedBlock.gif ExpandedBlockStart.gif Code
LEFT(LTRIM(T.Reference),50) AS reference,
  • 对ddmmyy的nvchar转换成datetime
    T.date就是nvchar200的ddmmyy类型。

 

ContractedBlock.gif ExpandedBlockStart.gif Code
 Case when T.Date is not null 
 Then cast(substring(T.Date,
5,4)+substring(T.Date,3,2)+substring(T.Date,1,2as DateTime)
 Else 
null
 END
  • 对float的转换

 

ContractedBlock.gif ExpandedBlockStart.gif Code
    CAST(S.price AS float),


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值