Как мне получить день с начальными 0 в SQL? (например, 1 => 01)

#sql #sql-server

#sql #sql-server

Вопрос:

Если бы сегодня было 1 декабря, выше было бы напечатано «1». Я хочу напечатать «01». Как мне это сделать?

 Date = REPLACE(REPLACE(Substring([Date],1,10),'-',''), '/','')
 

Результат: 2020/12/1
Ожидаемый результат: 2020/12/01

Кто-нибудь может дать совет? Большое спасибо.

Комментарии:

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

Ответ №1:

В SQL Server вы можете преобразовать в правильный формат:

 select convert(varchar(10), date, 121)
 

Вот скрипка db<> .

Комментарии:

1. спасибо Gordon.it кажется, не работает. я добавляю скрытое значение в свой код REPLACE(REPLACE(SubString(convert(varchar(10), [дата], 121 ),1,10),’-‘,»), ‘/’ ,») но это все равно приводит к «2020/12/1», я не уверен, так ли этоо EXCEL, потому что дни, которые я провел в EXCEL. ДАТА EXCEL — 2020/12/1.

2. @ericso . , , Это не говорит о добавлении convert() в ваш код. Это говорит только об использовании convert() .

Ответ №2:

Использование формата

 SELECT FORMAT(CAST('01-DEC-2020' AS DATE),'yyyy/MM/dd')