SQL生成来自拆分另一个的字符串

时间:2011-11-07 12:30:54

标签: sql delphi

我在Advantage数据库中有很多损坏的日期,但幸运的是我有一个完整的反向日期字段。

我需要使用SQL在“DD / MM / YYYY'”表格中重新创建日期字段。来自RDate字符串' YYYYMMDD'。

等同于:

UPDATE table SET Date = FormatDate('DD/MM/YY',StrToDate('YYYYMMDD',RDate))

我不知道是否可以选择字符位置并在SQL中以这种方式使用变量,或者我是否必须编写程序(在Delphi中)来执行操作。

由于

2 个答案:

答案 0 :(得分:3)

尝试类似

的内容
update table set
  date = cast(substring(rdate, 5, 2) + '/' +
    right(rdate, 2) + '/' +
    left(rdate, 4) as date)
/* where ... */

(假设您的连接的日期格式设置为默认'MM/DD/YYYY'

答案 1 :(得分:0)

TOndrej我不确定这是语法错误还是无法识别强制转换,但我使用以下SQL实现了所需的结果:

update members set "Expiry Date" = ((substring(RExpiryDate,7,2)) + '/' + (substring(RExpiryDate,5,2)) + '/' + (substring(RExpiryDate,1,4)))

感谢您的帮助