У меня есть varchar, который является 8-значным числом, и мне нужно преобразовать в datetime. Производственный номер - это автоматически сгенерированный номер с момента размещения заказа. Например, серийный номер 10090203 - это дата-время 2015-10-09 02:03:00. Мне нужно указать список чисел varchar в datetime, чтобы я мог перекрестно сравнить его со списком дат. Вот как я конвертирую datetime в varchar, но я не уверен, как идти наоборот.Ввести различные части varchar в дату, SQL
SELECT RIGHT('0' + CAST(DATEPART(M, table1.coldatetime) AS varchar), 2)
+ RIGHT ('0' + Cast(DATEPART(DD, table1.coldatetime) AS varchar), 2)
+ RIGHT('0' + CAST(DATEPART(HH, table1.coldatetime) AS varchar), 2)
+ RIGHT('0' + CAST(DATEPART(MINUTE, table1.coldatetime) AS varchar), 2)
AS 'CreatedNumber' FROM table1
Вы позволили изменить DDL? Я имею в виду, все хорошо и полезно использовать время даты как часть идентификатора, но почему бы не сохранить фактическую дату и время как дату и время в одной таблице? (После того, как я подумал: я вижу, что вы уже с холодным временем. Так почему вы не можете просто использовать это?) – cobaltduck
В настоящее время мы делаем множество обновлений программного обеспечения, чтобы попытаться переместить все в datetime, чтобы избавиться от записей varchar , из-за того, что они не включают год, и у нас в конечном итоге будут дубликаты, но эти таблицы невероятно длинны, и мы не хотим иметь 2 столбца, посвященных одной и той же информации. Особенно, если один столбец в конечном итоге отобразит дубликаты, потому что ему не хватает года. Кроме того, поля типа varchar имеют очень старые таблицы данных, прежде чем у нас даже был SQL-сервер. Они были в магазинах в программе доступа, и теперь мы переходим на vb.net. – Cheddar
@Чеддар - Как вы хотите выбрать год? – Adish