我需要转换日期,但不是日期,更像是客户输入字段的文本。
客户端正在使用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将此信息导出到文本文件,如果您需要更多信息,请告诉我们,谢谢
答案 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