Я работаю над запросом в Sql Server 2005, где мне нужно преобразовать значение в DateTime
переменную в varchar
переменную в yyyy-mm-dd
формате (без временной части). Как я могу это сделать?
303
Я работаю над запросом в Sql Server 2005, где мне нужно преобразовать значение в DateTime
переменную в varchar
переменную в yyyy-mm-dd
формате (без временной части). Как я могу это сделать?
CONVERT
см. документацию MSDN .Ответы:
С Microsoft Sql Server:
источник
LEFT(.., 10)
вместоCONVERT(CHAR(10), ...)
? Также те, кто работает с более новыми версиями SQL Server, чем 2005 (!), Должны проверить ответ Зара Шардана, предлагающего решение, основанное наFORMAT(date_value, format_string)
функции.FORMAT()
, слишком медленный по отношению кconvert(char(10),...)
Вот несколько тестов sql для всех стилей.
Вот результат
Сделать
nvarchar(max)
короче, чтобы обрезать время. Например:выходы:
источник
dd-mm
илиjun - 28
. Есть какой нибудь вариант ??Попробуйте следующее:
Для полной даты, а не только для даты:
Смотрите эту страницу для конвертирования стилей:
http://msdn.microsoft.com/en-us/library/ms187928.aspx
ИЛИ
Функция SQL Server CONVERT ()
источник
В SQL Server 2012 появилась новая функция FORMAT: http://msdn.microsoft.com/en-us/library/ee634924.aspx
и вы можете использовать пользовательские строки формата даты и времени: http://msdn.microsoft.com/en-us/library/ee634398.aspx
Эти страницы подразумевают, что он также доступен на SQL2008R2, но у меня нет ни одной удобной возможности проверить, так ли это.
Пример использования (австралийская дата / время):
источник
Вы можете использовать
DATEPART(DATEPART, VARIABLE)
. Например:источник
Либо
Cast
илиConvert
:Синтаксис для
CAST
:Синтаксис для
CONVERT
:http://msdn.microsoft.com/en-us/library/ms187928.aspx
На самом деле, так как вы попросили конкретный формат:
источник
- Это дает вам время как 0 в формате «гггг-мм-дд 00: 00: 00.000»
источник
С Microsoft SQL Server:
Используйте синтаксис для CONVERT:
Пример:
Для стиля вы можете найти больше информации здесь: MSDN - Преобразование и преобразование (Transact-SQL) .
источник
Пытаться:
Подробнее о MS SQL советы
источник
Попробуйте следующее:
Тогда вам нужно будет заменить "." с участием "-".
Вот сайт, который помогает http://www.mssqltips.com/tip.asp?tip=1145
источник
У меня есть фиксированная длина данных,
char(10)
как вы хотите определенный формат строки.источник
ОП упомянул формат даты и времени . Для меня часть времени мешает.
Я думаю, что немного чище удалить часть времени (путем приведения даты к дате) перед форматированием.
источник
Вот как я это делаю:
CONVERT(NVARCHAR(10), DATE1, 103) )
источник
Вы можете конвертировать вашу дату во многих форматах, синтаксис прост в использовании:
В вашем случае я только что преобразовал и ограничил размер с помощью nvarchar (10) следующим образом:
Смотрите больше на: http://www.w3schools.com/sql/func_convert.asp
Другое решение (если ваша дата - Datetime) - это простой CAST :
источник
Попробуйте этот SQL:
источник
Для SQL Server 2008+ Вы можете использовать CONVERT и FORMAT вместе.
Например, для отметки времени в европейском стиле (например, в Германии):
источник
Вы не сказали, какая база данных, но с помощью mysql простой способ получить дату из временной отметки (и преобразование типа varchar должно произойти автоматически):
источник
Самый короткий и простой способ это:
источник
источник
источник
Написать функцию
источник
даст
05/05/2020 10:41:05 AM
в результатеисточник
Вы не говорите, на каком языке, но я предполагаю,
C#/.NET
потому что он имеет собственныйDateTime
тип данных. В этом случае просто преобразуйте его, используяToString
метод, и используйте спецификатор формата, такой как:Тем не менее, я бы предостерег от использования этого в запросе к базе данных или объединения в оператор SQL. Базы данных требуют использования определенной строки форматирования. Вам лучше обнулить часть времени и использовать DateTime в качестве параметра SQL, если это то, что вы пытаетесь достичь.
источник