SQL-запрос 13-значный Unix дата в sql dateTime (с миллисекундами) проблемы форматирования - PullRequest
2 голосов
/ 02 июля 2019

У меня есть дата в формате unix (13 цифр, а не 10):

/Date(1561476867713)/

Я хочу преобразовать эту дату в VB, чтобы использовать ее в качестве параметра для SQL-запроса select:

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 голосов
/ 02 июля 2019

вы можете использовать эту функцию как

Преобразование или приведение https://www.w3schools.com/sql/func_sqlserver_cast.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...