格式化日期时间字段

时间:2014-02-20 16:31:23

标签: sql sql-server-2008-r2

我有一个表tblTest,其中有一个名为e_date的字段,其类型为DateTime

我想知道是否有一种方法允许我在SQL中进行格式化,以便该字段仅在运行存储过程时显示'd mmm yyyy'中的日期。

在SQL Server 2008 R2上

我找到了一个方法来显示我想要的日期,但是当我尝试更改格式以便它只显示日期时,与之关联的数据不会显示。

CONVERT(VARCHAR(9),[Date_ex],6)AS ExamDates,

3 个答案:

答案 0 :(得分:0)

查找date_format函数。在MySQL中,它将类似于:

//Syntax
DATE_FORMAT({date},{format})

//Example
DATE_FORMAT("2012-04-27",'%d/%m/%Y')

更多信息here

答案 1 :(得分:0)

在本文中看看Pinal Dave的功能。 http://blog.sqlauthority.com/2008/08/14/sql-server-get-date-time-in-any-format-udf-user-defined-functions/

对于intance,在创建函数后,可以通过以下

调用它
select [dbo].[ufsFormat] (getdate(),'mm/dd/yy')

这是MS SQL。你没有提到你正在使用的RDBMS。

答案 2 :(得分:0)

假设MSSQL基于您的历史记录;对于SQL Server 2012,只需使用FORMAT()

否则它有点狡猾地掉落前导零;

select
  substring(case when day(e_date) < 10 then '' else '?' end + convert(char(11), e_date, 106), 2, 32)