Alex2 101 Ответов: 1

Как привести дату в формате ДД-ММ-гггг при извлечении столбцов из таблицы в динамическом SQL?


Я хочу привести дату в формате dd-mm-yyyy при извлечении столбцов из таблицы в динамическом Sql-запросе. Я извлекаю столбцы, тип данных из главной таблицы и извлекаю их, и все это делается как динамический запрос

Что я уже пробовал:

SELECT @columns = COALESCE(@columns+',' ,'') +
 CASE WHEN ColumnType='DateTime'
 THEN  CONVERT(VARCHAR(24),ColumnName,103)
 ELSE
 CAST(ColumnName AS Varchar) END
 FROM ICCS_StdReport_Column_Master where TableId=@ip_tableId

 SELECT @tableName=TableName FROM ICCS_StdReportTable_Master where TableId=@ip_tableId



 SET @SQL = ' WHERE  convert(varchar(30),Download_Date,111)
 between '+ ''''+ convert(varchar(30),@ip_FromDate,111) +''''+'  AND '+
 ''''+ convert(varchar(30),@ip_ToDate,111) +''''



 set @Query=
 'SELECT  '+@COLUMNS+'
 FROM '+@tableName+ @SQL

1 Ответов

Рейтинг:
2

ZurdoDev

Если вы хотите, чтобы он был в определенном формате, то вам нужно выбрать этот формат. Видеть Функция SQL Server CONVERT() [^
Ваш код преобразуется с использованием стиля 111, поэтому просто измените его на тот, который вы хотите.


[no name]

Мне нужно, чтобы столбцы с типом данных datetime в формате dd/mm/yyyy извлекались из таблицы динамически . В моей таблице есть ColumnName, Columndatatype

Ниже приведена основная часть
Случай, когда ColumnType= 'DateTime'
Затем преобразуйте(VARCHAR(24), ColumnName, 103)
ЕЩЁ
CAST (ColumnName AS Varchar) END