【问题标题】:SQL query 13 digit unix date to sql dateTime (with milliseconds) formatting issuesSQL查询13位unix日期到sql dateTime(毫秒)格式问题
【发布时间】:2019-11-12 21:57:08
【问题描述】:

我有一个 unix 格式的日期(13 位,而不是 10 位):

/Date(1561476867713)/

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

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

查询应该找到什么(注意时间以毫秒为单位):

我找到了各种解决方案,但没有一个可以针对这种特殊情况进行工作。使用 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'

【问题讨论】:

  • SQL 服务器 2018
  • 你检查过[这个相关问题]()吗?stackoverflow.com/q/2904256/5089204
  • @Shnugo 我需要使用 VB 来完成
  • @NickyLarson,只花了几秒钟就找到了上面的答案。只需对 VB 和 UNIX 纪元日期的转换做一些研究。否则应该很容易理解链接答案中的几行,并在 VB 中做同样的事情......
  • Dim dotNetDate as Date = DateTimeOffset.FromUnixTimeMilliseconds(...).DateTime

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


【解决方案1】:

你可以像这样使用这个功能

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

【讨论】:

  • 这是一条sql语句。我需要在VB中转换,而不是sql
  • 好吧我错了,但是你可以在 VB 中看到 Convert.toDateTime 函数。
猜你喜欢
  • 1970-01-01
  • 2021-06-30
  • 1970-01-01
  • 2020-06-09
  • 1970-01-01
  • 1970-01-01
  • 2014-10-12
  • 1970-01-01
  • 2012-09-23
相关资源
最近更新 更多