【发布时间】:2013-12-03 17:30:24
【问题描述】:
我正在尝试编写一个查询,该查询采用 Javascript 日期对象,然后将其放入 SQL Server 和 Oracle 数据库类型都可以识别的对象类型中。
问题是我正在使用网络服务。所以它必须是一个字符串,而不是实际传递的参数。这就是我的意思:
var date = new Date();
var firstDayOfMonth = new Date(date.getFullYear(), date.getMonth(), 1);
var lastDayOfMonth = new Date(date.getFullYear(), date.getMonth() + 1, 0);
var webServicesQueryWhereClause = 'readDate BETWEEN '+firstDayOfMonth+' AND '+lastDayOfMonth;
除了firstDayOfMonth 和lastDayOfMonth 被to_date() 之类的东西包围,实际上将它们放在数据库可以读取的日期格式中。例如:
var webServicesQueryWhereClause = 'readDate BETWEEN to_date('+firstDayOfMonth+') AND to_date('+lastDayOfMonth+') ';
我应该使用什么来将这些日期放入 SQL Server 和 Oracle 都可以读取的格式中?
【问题讨论】:
-
所有 SQL 数据库都可以明确读取 ISO 日期格式:("YYYY-MM-DD HH:mm:ss")
firstDayOfMonth.toISOString()应该可以解决问题。 -
这是如何执行的?你用的是哪个库?通常最好让数据库来决定如何将日期对象转换为可识别的格式(但是,在您的情况下这可能是不可能的)。
-
我建议在您的 Web 服务层中构建查询字符串,除非这是 node.js 代码。如果您使用asp.net,请查看:momentjs.com/docs/#/parsing/asp-net-json-date
-
@James 我正在使用大气库和 javax.jws 服务器端来处理 Web 服务。
-
@guiomie 这不是一个选项。此查询字符串从使用 Sencha 创建的应用程序运行。
标签: javascript sql sql-server oracle