Добавьте 0, если день меньше 9 в sql

У меня есть следующее значение:

Jun **6** 2012 12:00:00:000AM

Что я хочу это:

Jun **06** 2012 12:00:00:000AM

0 следует добавлять только в том случае, если значение дня меньше 9,

Как мне это сделать?

2 ответа

Если вы используете SQL Server, вы можете сделать:

DECLARE @dt datetime = '1/1/2012'
SELECT CONVERT(VARCHAR(26), @dt, 107) + ' ' + CONVERT(VARCHAR(12), @dt, 114)

В любой базе данных вы можете сделать что-то вроде:

(case when substring(val, 5, 1) = ' '
      then substring(val, 1, 4)||'0'+substring(val, 5, 1000)
      else val
 end)

Это проверяет 5-й символ, чтобы увидеть, если это пробел. Если это так, то нужно добавить ноль. Я предполагаю, что "**" для акцента, а не в строке.

Проблема в том, что различные строковые операторы - подстрока и конкатенация - имеют тенденцию варьироваться в зависимости от базы данных.

Другие вопросы по тегам