如何将Sql中的日期类型与javascript日期进行比较

如何将Sql中的日期类型与javascript日期进行比较,javascript,sql-server,node.js,express,Javascript,Sql Server,Node.js,Express,我有一个ISO格式的javascript日期字符串,例如 dtStart = 2016-09-05T07:00:00.000Z 我想在SQL查询中将其与标签为DateTimeCollected的列进行比较。DateTimeCollected的示例可以是2014-06-27T00:00:00.000Z 我怎样才能使用下面的东西在SQL中比较这两个日期 DateTimeCollected >= ${dtStart} 在查询中,其中dtStart是字符串。如果有帮助的话,我正在使用MSsql

我有一个ISO格式的javascript日期字符串,例如

dtStart = 2016-09-05T07:00:00.000Z
我想在SQL查询中将其与标签为DateTimeCollected的列进行比较。DateTimeCollected的示例可以是
2014-06-27T00:00:00.000Z

我怎样才能使用下面的东西在SQL中比较这两个日期

DateTimeCollected >= ${dtStart}

在查询中,其中dtStart是字符串。如果有帮助的话,我正在使用MSsql。

如果您正在比较Sql中的值,您应该能够简单地执行以下操作:

DateTimeCollected >= CONVERT(${dtStart}, @stringDate, 126)
DateTimeCollected >= CAST(@DateTimeString As DateTime). 
假设
@DateTimeString
是一个char(23)变量,其中包含日期时间值的字符串表示形式,符合ISO8601格式(
yyyy-mm-ddThh:mi:ss.mmm

事实上,您也可以不用强制转换来执行此操作,因为Sql server将隐式地将字符串强制转换为datetime数据类型。然而,我认为最好使用显式转换,因为它更具可读性


正如我在评论中所写,如果按照ISO8601格式作为字符串传递,SQL Server应该始终强制转换正确的日期。

您可以将此字符串表示形式作为char变量传递给SQL,并将其强制转换为datetime、datetime2或datetimeoffset。这是一种字符串格式,Sql server应始终正确转换为datetime。DateTimeCollected是哪种Sql类型?@Alex K.DateTimes这可能会回答这个问题,但您应该对其进行一些解释。