0

我对 Interbase 有一个有趣的问题。我有一个记录集,其中有一个数据输入字段和每条记录的时间戳。我希望能够从记录中复制时间戳,以便在一天结束时,最终字段将按照以下方式读取:

TIMESTAMP <Carriage return> <carriage return> Original data in field

因此,显示该字段时的最终外观是:

time of entry

data that was entered

遗憾的是,这必须在数据库级别完成,因为我无法访问前端软件。

我能想出的唯一解决方案是选择,使用自定义软件执行合并,然后逐行生成适当的 SQL 来更新记录。由于每天有数百条记录,这相当慢,因此基于 SQL 的解决方案将是理想的。

过去,我已经成功地将固定数据添加到字符串的末尾,||用于与UPDATE指令连接(数据||所有记录都相同的额外信息”),但无法以以下格式进行这项工作:

result of search||original data 

任何帮助将非常感激。

4

2 回答 2

1
UPDATE FOO_TABLE
  SET DATA_ENTRY_FIELD = DATA_ENTRY_FIELD || TIMESTAMP_FIELD
WHERE ...;

这应该可以工作(前提是 DATA_ENTRY_FIELD 有连接空间)。如果它不起作用,请更具体地说明您遇到的问题。

于 2009-03-12T00:59:58.683 回答
0

克雷格的回答应该有效,但如果你想要回车,你也需要插入它们:

UPDATE  foo_table
SET     data_entry_field = timestamp || '\n\n' || data_entry_field
WHERE   ...

(假设 Interbase 接受\n回车 - 这实际上应该只是\r\r\n至在 Windows 上,但\n相当标准。)

MySQL 无法识别||连接运算符,因此您必须改用该CONCAT()函数。Interbase可能是一样的。

于 2009-03-15T18:21:31.667 回答