使用odbc导出到文件,将只有文本的3位数日期转换为完整日期

时间:2014-09-09 22:28:56

标签: sql odbc

我需要转换日期,但不是日期,更像是客户输入字段的文本。

客户端正在使用Access数据库,召回日期是他在215中输入的字段的名称,意思是2015年2月,我目前的设置工作正常但是当第一个数字是两位数时,这种方法不起作用。像1115一样成为2015年1月1日

这是我的代码

  

left("recall date",1)+'/01/20'+ right("recall date",2) as Recalldate

我试图为我做一些非常复杂的事情并且一次又一次地失败

iif(len("recall date" =4), Csng(left("recall date",2))+'/01/20'+ csng(right("recall date",2)) , csng(left("recall date",1))+'/01/20'+ csng(right("recall date",2)))

当前设置将odbc将此信息导出到文本文件,如果您需要更多信息,请告诉我们,谢谢

2 个答案:

答案 0 :(得分:0)

我的想法是将前导零添加到只有3位数的值,将其分成两部分并添加'20'作为年前缀:

SELECT DateValue(Mid(Format(cint('215'), '0000'), 1, 2) & '/20' & Mid(Format(cint('215'), '0000'), 3, 2))
-- 2015-02-01 00:00:00

SELECT DateValue(Mid(Format(cint('1115'), '0000'), 1, 2) & '/20' & Mid(Format(cint('1115'), '0000'), 3, 2))
-- 2015-11-01 00:00:00

答案 1 :(得分:0)

    iif ( len([recall date]) = 3, 
   left("recall date",1)+'/01/20'+ right("recall date",2), 
   left("recall date",2)+'/01/20'+ right("recall date",2)) 
as Recalldate