15

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

从这个: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

5 回答 5

29

如果 DB 是SQL Server,那么

select Convert(varchar(10),CONVERT(date,YourDateColumn,106),103)
于 2013-07-10T08:57:08.423 回答
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
于 2013-07-10T08:53:24.527 回答
4

如果您有日期(或日期时间)列,请查看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_DATEMySQL。

于 2013-07-10T08:45:43.543 回答
3
SELECT CONVERT(varchar(11),Getdate(),105)
于 2016-07-30T06:19:12.267 回答
0

尝试http://www.sql-server-helper.com/tips/date-formats.aspx。列出所有需要的格式。在这种情况下 select Convert(varchar(10),CONVERT(date,YourDateColumn,106),103) change 103 to 104 id you need dd.mm.yyyy

于 2016-04-11T09:55:24.820 回答