Используйте подстроку и Concat

У меня есть следующая дата 20180305 в моей базе данных, хранящаяся как varchar (8).

Я хочу изменить формат даты на ДДММГГГГ

Я вижу элементы, разделенные с помощью подстроки, как показано ниже:

Substring ([Transaction Date],7,2) [Accounting Period] ,
        Substring ([Transaction Date],5,2) [Accounting Period],
        Substring ([Transaction Date],1,4) [Accounting Period] 

Но как мне совместить их с CONCAT?

Спасибо

Если вы собираетесь что-то изменить, это должен быть тип данных. Никогда сохраняет даты в столбце varchar, всегда использует соответствующий тип данных.

HoneyBadger 13.07.2018 14:56

Отметьте СУБД (например, MySQL, SQL Server и т. д.), Которую вы используете.

Yogesh Sharma 13.07.2018 15:01

Вам действительно стоит послушать, что говорит @HoneyBadger. Хранить даты в виде строк - просто ужасная идея. sqlblog.org/2009/10/12/…

Sean Lange 13.07.2018 15:40
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
3
325
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Кажется, вы работаете с SQL Server, если да, то вы можете использовать:

SELECT REPLACE(CONVERT(VARCHAR(10), CAST('20180305' AS date), 105), '-','') AS [Accounting Period]
FROM table t;
Ответ принят как подходящий

Нет! Измените структуру данных:

alter table t alter column [Transaction Date] date;

Вам повезло. Ваш формат будет преобразован правильно.

Затем, если вы хотите, чтобы он был в определенном формате, используйте вычисляемый столбец:

alter table t add column transaction_date_mmddyyyy as
    (replace(convert(varchar(10), [Transaction Date], 105), '-', '') )

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

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