Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何将ADO字段与ASP Classic/JavaScript中的当前时间进行比较?_Sql Server_Time_Asp Classic_Ado_Jscript - Fatal编程技术网

Sql server 如何将ADO字段与ASP Classic/JavaScript中的当前时间进行比较?

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函数 编辑:我已

我的SQL Server数据库表有一个
时间(7)
字段。我可以使用常用的ADODB.Recordset方法从ASP脚本访问此表。然后,我想将检索到的时间与当前时间进行比较。我猜这需要一个JavaScript日期对象,因为这是这个版本的ASP使用的语言。问题是,我很难找到将ADO字段对象与JS日期进行比较的方法

基本上,我想写一行

var passtime=hastinmecomeyet(rs.Fields.Item(“时间”);
但是我不知道如何编写
hastinmecomeyet
函数


编辑:我已将该字段强制转换为
datetime
(对日期进行了适当修改),作为SQL查询的一部分。不幸的是,我一直使用JScript,因此无法使用任何仅在VBScript中可用的函数。

假设SQL Server查询返回适当的日期/时间数据类型,记录集将返回子类型VT_date的变体。在JScript中,您只需将此值传递给构造函数,它就会构造一个JScript
Date
对象

var jsDateFromDB = new Date(rs.Fields.Item("theTime").Value);
关于该示例的一些注释:

  • 我记不起是否需要
    .Value
    。如果JScript没有展开默认属性,那么您需要
    .Value
    ,否则您只得到
    字段
    对象,而不是实际的日期值。我会把它只是为了明确在任何情况下
  • 我将列重命名为“theTime”,只是为了避免使用保留名称。我相信这只是一个示例名称

我假设您知道如何在JScript中进行日期比较,或者至少可以轻松地查找它。

关于
日期
,如果没有
日期
,您希望如何比较
时间
?首先,您可能希望在SQL中返回
CONVERT(time(3),[time\u column])[time\u column]
,以确保传递JScript
Date
对象可以处理的最大精度(毫秒),然后使用
.setHours()
.setMinutes()
.setSeconds()
设置毫秒()
(或
设置UTC…
时间等价物),但老实说,如果没有
日期
部分,我看不出比较是否有效。还有,到目前为止您尝试了什么,目前没有显示任何工作?为什么要使用JavaScript?VBScript,这很简单-
Datediff(“s”,现在是rs.Fields.Item(“Time”))
或者类似的东西。@Martha这对
Time
字段有效吗?未测试它,但不确定它是否会,因为它缺少日期部分,因此
DateDiff()
将出错。这让我回到我之前的评论“如果没有
日期
部分,我看不出比较有效”。@Lankymart:我认为VBScript将提供日期部分。。。尽管您可能需要执行一个
CDate
?显然,我没有在这里测试任何东西。。。