SQL查询 - 将查询中的日期格式更改为DD / MM / YYYY

时间:2013-07-10 08:39:02

标签: sql sql-server sql-server-2008

我想要实现的目标非常简单,将一种日期格式转换为另一种格式;

来自:Jan 30 2013 12:00:00:000AM 致:DD/MM/YYYY或本案例30/01/2013

然而,当它是月份的第1天到第9天时,日期格式缺少零,并且有两个空格,如图所示;

Jul  3 2014 12:00:00:000AM

我已经寻求解决方案,但没有成功,日期的格式是不寻常的,并且根据月份的日期而有所不同,但是这种格式是由内部系统生成的,不能更改。那么我是否必须模式匹配才能更改格式?我该怎么做呢?

部分查询的一个例子就是这个;

SELECT
PREFIX_TableName.ColumnName1 AS Name,
PREFIX_TableName.ColumnName2 AS E-Mail,
PREFIX_TableName.ColumnName3 AS TransactionDate,
PREFIX_TableName.ColumnName4 AS OrderNumber,
...

要编辑的行是PREFIX_TableName.ColumnName3 AS TransactionDate,

4 个答案:

答案 0 :(得分:29)

如果数据库 SQL Server ,那么

select Convert(varchar(10),CONVERT(date,YourDateColumn,106),103)

答案 1 :(得分:6)

如果我理解你的问题,请尝试这样的事情

declare @dd varchar(50)='Jan 30 2013 12:00:00:000AM'

Select convert(varchar,(CONVERT(date,@dd,103)),103)

更新

SELECT
PREFIX_TableName.ColumnName1 AS Name,
PREFIX_TableName.ColumnName2 AS E-Mail,
convert(varchar,(CONVERT(date,PREFIX_TableName.ColumnName3,103)),103) AS TransactionDate,
PREFIX_TableName.ColumnName4 AS OrderNumber

答案 2 :(得分:3)

如果您有日期(或日期时间)列,请查看http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

 SELECT DATE_FORMAT(datecolumn,'%d/%m/%Y') FROM ...

应该为MySQL做的工作,对于SqlServer我确定有一个模拟功能。 如果您有VARCHAR列,则可能首先将其转换为日期,请参阅STR_TO_DATE以获取MySQL。

答案 3 :(得分:3)

SELECT CONVERT(varchar(11),Getdate(),105)