Как получить дату в формате YYYY-MM-DD от поля даты и времени TSQL?

Небольшая вариация решения fgm с использованием встроенной команды read для разбиения строки на массив. Обратите внимание, что область действия переменной IFS ограничена командой read (поэтому нет необходимости сохранять и восстанавливать текущую переменную IFS).

version='1.2.33'
IFS='.' read -r -a a <<<"$version"
((a[2]++))
printf '%s\n' "${a[@]}" | nl
version="${a[0]}.${a[1]}.${a[2]}"
echo "$version"

См .: Как разделить строку по разделителю в Bash?

252
задан smonff 10 December 2018 в 00:55
поделиться

6 ответов

SELECT CONVERT(char(10), GetDate(),126)

Ограничение размера отбрасываемых варчаров части часа, которая вам не нужна.

407
ответ дан 23 November 2019 в 02:51
поделиться

Я бы использовал:

CONVERT(char(10),GETDATE(),126)
1
ответ дан 23 November 2019 в 02:51
поделиться

SELECT CONVERT (NVARCHAR (20), GETDATE (), 23)

2
ответ дан 23 November 2019 в 02:51
поделиться

Функция convert со спецификатором формата 120 даст вам формат «гггг-ММ-дд ЧЧ: мм: сс», поэтому вам просто нужно ограничить длину до 10, чтобы получить только часть даты:

convert(varchar(10), theDate, 120)

Однако форматирование дат обычно лучше выполнять на уровне представления, а не в база данных или бизнес-уровень. Если вы вернете дату, отформатированную из базы данных, тогда клиентский код должен будет снова проанализировать ее до даты, если ему нужно выполнить какие-либо вычисления с ней.

Пример в C #:

theDate.ToString("yyyy-MM-dd")
26
ответ дан 23 November 2019 в 02:51
поделиться

В вашей ссылке преобразования и преобразования используйте стиль 126 таким образом:

CONVERT (varchar (10), DTvalue, 126)

Это усекает время. Ваше требование иметь его в формате гггг-мм-дд означает, что это должен быть строковый тип данных и дата и время.

Честно говоря, я бы сделал это на клиенте, если у вас нет веских причин не делать этого.

5
ответ дан 23 November 2019 в 02:51
поделиться

Форма, которую вы ищете, указана в электронной документации к книгам.

http://msdn.microsoft.com/en-us/library/aa226054 (SQL.80) .aspx

Например, попробуйте следующее:

select convert(varchar,getDate(),120)
select convert(varchar(10),getDate(),120)
35
ответ дан 23 November 2019 в 02:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: