我有一个表tblTest
,其中有一个名为e_date
的字段,其类型为DateTime
。
我想知道是否有一种方法允许我在SQL中进行格式化,以便该字段仅在运行存储过程时显示'd mmm yyyy'
中的日期。
在SQL Server 2008 R2上
我找到了一个方法来显示我想要的日期,但是当我尝试更改格式以便它只显示日期时,与之关联的数据不会显示。
CONVERT(VARCHAR(9),[Date_ex],6)AS ExamDates,
答案 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)