sql - 根据数据类型格式化日期列的 SQL 语句
问题描述
我有一个 javascript 函数,可以将 select 语句发送到 sql 服务器。列和表名由用户给出。如果数据类型是日期,我希望它以特定格式返回。
因为用户定义了列,所以不知道会不会是日期类型,所以我的想法是检查每一列的数据类型,如果是日期,使用格式函数将其转换为所需的结果。
像这样:(我知道我在这里发明了自己的 SQL)
DECLARE @type
SELECT firstName, lastName, hireDate, termDate // columns supplied by the user
// Cycle through each column, check the data type and reformat it if it is some type of date
FOR EACH(@column)
SET @type = SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'employees' AND COLUMN_NAME = @column
IF (@type = 'date')
FORMAT(@column, 'YYYYMMDD')
ELSE IF (@type == 'datetimeoffset' OR
@type == 'smalldatetime' OR
@type == 'datetime2')
FORMAT(@type , 'YYYYMMDDHHMMSS')
END IF
END FOR EACH
FROM employees // table supplied by the user
这样的事情可行吗?