更改 SQL SELECT 语句中的日期格式(DD/MM/YYYY)

问题描述 投票:0回答:8

原来的SQL语句是:

SELECT SA.[RequestStartDate] as 'Service Start Date', 
       SA.[RequestEndDate] as 'Service End Date', 
FROM
(......)SA
WHERE......

输出日期格式为YYYY/MM/DD,但我希望输出日期格式为DD/MM/YYYY。我该如何修改此声明?

sql sql-server t-sql
8个回答
28
投票

尝试这样...

select CONVERT (varchar(10), getdate(), 103) AS [DD/MM/YYYY]

了解更多信息:http://www.sql-server-helper.com/tips/date-formats.aspx


13
投票

更改为:

SELECT FORMAT(SA.[RequestStartDate],'dd/MM/yyyy') as 'Service Start Date', SA.[RequestEndDate] as 'Service End Date', FROM (......)SA WHERE......

不知道您使用的是哪种SQL引擎,对于其他SQL引擎,可以在SELECT语句中使用CONVERT将格式更改为您需要的形式。


5
投票

还有另一种方法可以做到这一点-

select TO_CHAR(SA.[RequestStartDate] , 'DD/MM/YYYY') as RequestStartDate from ... ;

1
投票

尝试:

SELECT convert(nvarchar(10), SA.[RequestStartDate], 103) as 'Service Start Date', 
       convert(nvarchar(10), SA.[RequestEndDate], 103) as 'Service End Date', 
FROM
(......)SA
WHERE......

或者:

SELECT format(SA.[RequestStartDate], 'dd/MM/yyyy') as 'Service Start Date', 
       format(SA.[RequestEndDate], 'dd/MM/yyyy') as 'Service End Date', 
FROM
(......)SA
WHERE......

0
投票

您将需要使用 CONVERT() 语句。

尝试以下操作;

SELECT CONVERT(VARCHAR(10), SA.[RequestStartDate], 103) as 'Service Start Date', CONVERT(VARCHAR(10), SA.[RequestEndDate], 103) as 'Service End Date', FROM (......) SA WHERE.....

有关更多信息,请参阅 MSDN 投射和转换


0
投票

这取决于 DBMS。事实上,在 Oracle SQL 上,您更愿意编写 SELECT TO_CHAR(, 'DD/MM/YYYY') AS NAME_YOUR_DATE。 解决方案 SELECT CONVERT(VARCHAR(10), SA.[RequestStartDate], 103) 不适用于此 DBMS


-1
投票

我使用的是 Oracle,我必须选择多个列并以 YYYY-MM-DD 格式输出日期列,这有效

select <column_1>, to_char(<date_column>, 'YYYY-MM-DD') as <Alias_name> from <table_name> 


-1
投票

SELECT column1, DATE_FORMAT(ColumnName, "%d/%M/%Y") as column2, column3 FROM tableName;

你可以在这里看到

w3:https://www.w3schools.com/sql/func_mysql_date_format.asp

© www.soinside.com 2019 - 2024. All rights reserved.