我想要实现的目标非常简单,将一种日期格式转换为另一种格式;
来自: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,
答案 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)