15 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
Run Code Online (Sandbox Code Playgroud)
我已经寻求解决方案,但没有成功,日期的格式是不寻常的,并且根据月份的日期而有所不同,但是这种格式是由内部系统生成的,不能更改.那么我是否必须模式匹配才能更改格式?我该怎么做呢?
查询的一部分示例是这样的;
SELECT
PREFIX_TableName.ColumnName1 AS Name,
PREFIX_TableName.ColumnName2 AS E-Mail,
PREFIX_TableName.ColumnName3 AS TransactionDate,
PREFIX_TableName.ColumnName4 AS OrderNumber,
...
Run Code Online (Sandbox Code Playgroud)
要编辑的行是这个 PREFIX_TableName.ColumnName3 AS TransactionDate,
Rom*_*esh 29
如果DB是SQL Server那么
select Convert(varchar(10),CONVERT(date,YourDateColumn,106),103)
Run Code Online (Sandbox Code Playgroud)
如果我理解你的问题,试试这样的话
declare @dd varchar(50)='Jan 30 2013 12:00:00:000AM'
Select convert(varchar,(CONVERT(date,@dd,103)),103)
Run Code Online (Sandbox Code Playgroud)
更新
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
Run Code Online (Sandbox Code Playgroud)
如果您有日期(或日期时间)列,请查看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 ...
Run Code Online (Sandbox Code Playgroud)
应该为 MySQL 完成这项工作,对于 SqlServer 我确信有一个模拟函数。如果您有 VARCHAR 列,您可能必须首先将其转换为日期,请参阅STR_TO_DATE
MySQL。