我的简介是实现一个接口,该接口的方法类似于下面的“GetValuesSqlStatement”:
public string SqlPattern { get { ... } }
//this varies; eg. "SELECT name FROM someTable WHERE startDate < {0}"
public string DatabaseType { get { ... } }
//this varies; eg. "SqlServer"
public string GetValuesSqlStatement(List<object> paramValues)
{
//...desired logic here, using DatabaseType, SqlPattern and paramValues
}
现在,因为这必须产生一个可执行的 SQL 语句,所以我不能在执行查询时使用参数。而且我必须实现的接口是不可协商的。确保数据库查询引擎正确解释结果中的日期的最佳方法是什么?假设 paramValues 包含 .NET DateTime 对象,在插入 SQL 模式字符串之前应该如何将它们格式化为字符串?must 数据库中最常见的通用日期格式是什么?(例如'dd-mmm-yyyy'之类的东西)。
注意:我只需要担心 2005 年以后的 Sql Server 和 Oracle 10g 以后的版本。所以 SQL 必须是有效的 T SQL 和 PL SQL,并且在两种风格中都意味着相同的东西。