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

SQL查询-将查询中的日期格式更改为DD/MM/YYYY,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我试图实现的是相当直接的,将一种日期格式转换为另一种日期格式 由此开始:2013年1月30日12:00:00:000AM 对于此:DD/MM/YYYY或在这种情况下30/01/2013 但是,当它是一个月的第1到第9天时,日期格式缺少一个零,并且有两个空格,如图所示 Jul 3 2014 12:00:00:000AM 我四处寻找一个解决方案,但没有成功,日期的格式是不寻常的,取决于一个月的哪一天,但这种格式是由内部系统生成的,不能更改。然后我是否必须进行模式匹配才能更改格式?我该怎么做呢 查

我试图实现的是相当直接的,将一种日期格式转换为另一种日期格式

由此开始:
2013年1月30日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,
...
要编辑的行是此
前缀\u TableName.columnname 3作为TransactionDate,

如果您有日期(或日期时间)列,请查看

应该为MySQL做这项工作,对于SqlServer,我确信有一个模拟函数。
如果您有一个VARCHAR列,您可能首先需要将其转换为日期,请参见MySQL的
STR_to_date

如果我理解您的问题,请尝试类似的方法

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

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


如果数据库是SQL Server,则

select Convert(varchar(10),CONVERT(date,YourDateColumn,106),103)
试试看。列出所需的所有格式。 在本例中,选择Convert(varchar(10)、Convert(date,YourDateColumn,106)、103)
将103更改为104 id您需要dd.mm.yyyy

发布您已经尝试过的查询是MySql还是Sql Server?您已经标记了列的数据类型?它是Datetime还是Varchar?通常最好将SQL Server中的所有内容保存为
Datetime
(或
datetime2
)类型,并且只对更接近用户的字符串进行格式化。这是一个通过OPENQUERY到ADP KCML数据库的MSSQL查询。我现在已经在上面的描述中发布了查询的相关部分。我已经对其进行了测试,但查询没有运行。@Matt:您有什么错误。只需尝试从前缀\u TableName中选择日期列
选择convert(varchar,(convert(date,前缀\u TableName.columnnam3103)),103)作为TransactionDate,语法错误为:。。。前缀_TableName.ColumnName3,>>>转换什么是列数据类型?这是正确的方法。我原以为您必须使用109作为输入datetime样式,尽管106似乎工作得很好。在任何一种情况下,SQL Server都能正确解释2014年7月3日12:00:00:000AM
——即使在月份和日期之间有额外的空格。查看更多转换选项。嘿,我如何指定要转换的列?@PrinceArora您只需要用Getdate()函数替换您的列
SELECT CONVERT(varchar(11),Getdate(),105)
select Convert(varchar(10),CONVERT(date,YourDateColumn,106),103)
SELECT CONVERT(varchar(11),Getdate(),105)