Sql server 如何将ADO字段与ASP Classic/JavaScript中的当前时间进行比较?
我的SQL Server数据库表有一个Sql server 如何将ADO字段与ASP Classic/JavaScript中的当前时间进行比较?,sql-server,time,asp-classic,ado,jscript,Sql Server,Time,Asp Classic,Ado,Jscript,我的SQL Server数据库表有一个时间(7)字段。我可以使用常用的ADODB.Recordset方法从ASP脚本访问此表。然后,我想将检索到的时间与当前时间进行比较。我猜这需要一个JavaScript日期对象,因为这是这个版本的ASP使用的语言。问题是,我很难找到将ADO字段对象与JS日期进行比较的方法 基本上,我想写一行 var passtime=hastinmecomeyet(rs.Fields.Item(“时间”); 但是我不知道如何编写hastinmecomeyet函数 编辑:我已
时间(7)
字段。我可以使用常用的ADODB.Recordset方法从ASP脚本访问此表。然后,我想将检索到的时间与当前时间进行比较。我猜这需要一个JavaScript日期对象,因为这是这个版本的ASP使用的语言。问题是,我很难找到将ADO字段对象与JS日期进行比较的方法
基本上,我想写一行
var passtime=hastinmecomeyet(rs.Fields.Item(“时间”);
但是我不知道如何编写hastinmecomeyet
函数
编辑:我已将该字段强制转换为
datetime
(对日期进行了适当修改),作为SQL查询的一部分。不幸的是,我一直使用JScript,因此无法使用任何仅在VBScript中可用的函数。假设SQL Server查询返回适当的日期/时间数据类型,记录集将返回子类型VT_date的变体。在JScript中,您只需将此值传递给构造函数,它就会构造一个JScriptDate
对象
var jsDateFromDB = new Date(rs.Fields.Item("theTime").Value);
关于该示例的一些注释:
- 我记不起是否需要
。如果JScript没有展开默认属性,那么您需要.Value
,否则您只得到.Value
对象,而不是实际的日期值。我会把它只是为了明确在任何情况下字段
- 我将列重命名为“theTime”,只是为了避免使用保留名称。我相信这只是一个示例名称
我假设您知道如何在JScript中进行日期比较,或者至少可以轻松地查找它。关于
日期
,如果没有日期
,您希望如何比较时间
?首先,您可能希望在SQL中返回CONVERT(time(3),[time\u column])[time\u column]
,以确保传递JScriptDate
对象可以处理的最大精度(毫秒),然后使用.setHours()
,.setMinutes()
,.setSeconds()
和设置毫秒()
(或设置UTC…
时间等价物),但老实说,如果没有日期
部分,我看不出比较是否有效。还有,到目前为止您尝试了什么,目前没有显示任何工作?为什么要使用JavaScript?VBScript,这很简单-Datediff(“s”,现在是rs.Fields.Item(“Time”))
或者类似的东西。@Martha这对Time
字段有效吗?未测试它,但不确定它是否会,因为它缺少日期部分,因此DateDiff()
将出错。这让我回到我之前的评论“如果没有日期
部分,我看不出比较有效”。@Lankymart:我认为VBScript将提供日期部分。。。尽管您可能需要执行一个CDate
?显然,我没有在这里测试任何东西。。。