SQL查询13位数的UNIX日期到SQL日期时间(以毫秒为单位)格式问题

时间:2019-07-02 09:27:19

标签: sql sql-server vb.net date datetime

我的日期格式为unix(13位数字,而不是10位):

/Date(1561476867713)/

我想在VB中转换该日期,以便可以将其用作SQL“选择”查询的参数:

SELECT TOP 1 *
FROM RM_RATES_BY_QUANTITY_BAND
WHERE RM_RATES_BY_QUANTITY_BAND.BOQ_ITEM_UID = 9950
AND RM_RATES_BY_QUANTITY_BAND.CONTRACT_UID = 0
AND RM_RATES_BY_QUANTITY_BAND.CONTRACTOR_UID = 3
AND RM_RATES_BY_QUANTITY_BAND.QUANTITY_BREAK = 200
AND RM_RATES_BY_QUANTITY_BAND.RATE_START_DATE = [converted date]

查询应查找的内容(注意时间以毫秒为单位):

SQL

我找到了各种解决方案,但没有一种可以针对这种特殊情况进行工作。使用Visual Basic和SQL Server 2016。

编辑:以证明我发现的类似问题的解决方案不起作用:

Dim timeStamp = "1561476867713"
Dim unixConvertedDate As DateTime = New 
System.DateTime(1970, 1, 1, 0, 0, 0, 0)
unixConvertedDate = unixConvertedDate.AddMilliseconds(timeStamp).AddHours(1)

这将返回'#6/25/2019 04:34:27 PM#'。现在,我需要将其更改为:     '2019-06-25 16:34:27.713'

问题在于'#6/25/2019 04:34:27 PM#'不显示毫秒,仅显示秒,因此我无法将其格式化为如下格式:'2019-06-25 16: 34:27.713'

1 个答案:

答案 0 :(得分:0)

您可以像使用此功能

转换或投射 https://www.w3schools.com/sql/func_sqlserver_cast.asp