Sql server 如何在SQL Server中为SELECT语句的结果设置日期格式

Sql server 如何在SQL Server中为SELECT语句的结果设置日期格式,sql-server,Sql Server,我知道如何在SELECT语句中使用CONVERT函数来更改日期列的格式: SELECT StationID , CONVERT(varchar, [Date], 101) as Date , Value FROM my_table 但我不知道在运行SELECT语句之前是否可以设置日期格式,因为我不知道以下SELECT语句中日期列的名称: SELECT * from FROM my_table 是否有任何SET语句或其他T-S

我知道如何在SELECT语句中使用CONVERT函数来更改日期列的格式:

   SELECT 
       StationID
       , CONVERT(varchar, [Date], 101) as Date
       , Value 
   FROM my_table 
但我不知道在运行SELECT语句之前是否可以设置日期格式,因为我不知道以下SELECT语句中日期列的名称:

   SELECT * from FROM my_table 
是否有任何SET语句或其他T-SQL可以在SELECT语句之前运行,以便临时更改日期格式


谢谢你

我很确定你的要求是无法实现的。但是,当您使用编程语言输出日期字符串时,有一些方法可以对其进行格式化。

我敢肯定,没有办法满足您的要求。但是,当您使用编程语言输出日期字符串时,有一些方法可以对其进行格式化。

特别是,您选择的任何日期列实际上根本没有格式化,而是以用于日期的二进制“格式”作为实际日期数据返回。如果您看到它们被格式化,那是因为您的客户机(ManagementStudio或其他工具)正在将它们转换为字符串以显示

当您使用
SELECT*
时,显然没有办法告诉SQL Server对任何特定列进行任何转换,因此数据将以基础查询返回的任何数据类型返回。因此,无论您的数据类型是否真的是日期,在这一点上都不会发生任何操作。

特别是,您选择的任何日期列实际上根本没有格式化,而是以用于日期的二进制“格式”作为实际日期数据返回。如果您看到它们被格式化,那是因为您的客户机(ManagementStudio或其他工具)正在将它们转换为字符串以显示


当您使用
SELECT*
时,显然没有办法告诉SQL Server对任何特定列进行任何转换,因此数据将以基础查询返回的任何数据类型返回。因此,无论您的数据类型是否为date,在这一点上都不会发生任何操作。

为什么要在不知道列名称的情况下编写代码?请阅读:原因是当用户选择一个选项时,SQL语句会动态生成。如果我想让用户识别列名,我必须设置一个“If”语句的大列表,以找到用户选择的选项。为什么要在不知道列名的情况下编写代码?请阅读:原因是当用户选择一个选项时,SQL语句会动态生成。如果我想让用户识别列名,我必须设置一个“If”语句的大列表,以找到用户选择的选项。