在access中,报表中的澳大利亚日期SQL
被分隔并格式化为#d/m/yyyy#。例如:
SELECT * FROM mytable WHERE mydate BETWEEN #2/1/2001# AND #4/3/2001# AND more...
我需要抓住这个SQL
声明并按摩它,这样我就可以把它呈现给SQLite
:
SELECT * FROM mytable WHERE mydate BETWEEN '2001-01-02' AND '2001-03-04' AND more...
那么,任务就是转换#xd/xm/yyyy#
为'yyyy-mm-dd'
. “你好,世界!” 正则表达式示例。
使用带有 的vba正则表达式.Global = TRUE
,我可以一步替换分隔符并重新排序元素:
vOldPattern = "#([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})#"
vNewPattern = "'$3-$2-$1'"
这给出了以下中间结果:
SELECT * FROM mytable WHERE mydate BETWEEN '2001-1-2' AND '2001-3-4' AND more...
我以为我可以一次通过填充所有个位数:
vOldPattern = "-(\d[-'])"
vNewPattern = "-0$1"
但这种方法只填充了第一个(月)数字。我放弃并跑过两次,首先匹配
"-(\d-)"
然后继续
"-(\d')"
所以,三遍来改变格式和调整内容。当然,这个任务只有一个搜索/替换命令。有人可以自愿提供更优雅的解决方案吗?
而且,由于我必须编译和导出运行时,我想我不能使用后期绑定,而是需要加载对 MS VBScript 正则表达式的引用。我在 Win7/32 中开发,但应用程序需要与 WinXP 向后兼容(兼容?)。我应该加载哪个版本(1.0 或 5.5)的 VBScript RegEx 库?
干杯!