New SQL Server Function to Format Dates

SQL Server 2012 FORMAT函数日期格式化示例
本文指出SQL Server 2008及更早版本用CONVERT函数处理日期格式化,灵活性有限。而SQL Server 2012引入了新的FORMAT函数,更易用。文章展示了该函数的使用示例,包括不同格式输出、文化选项下的区域格式化等。

Problem

SQL Server 2008 and earlier versions used the CONVERT functions to handle date formatting. In this tip, Date and Time Conversions Using SQL Server, we have a list of the available examples on how to use the CONVERT function to handle different date formats.  As you may notice, this function is not very flexible and we have limited date formats. In SQL Server 2012 and future versions, a new function FORMAT has been introduced which is much easier to use.  This article shows different examples of using this new function.

Solution

SQL Server 2012 includes a new function to handle formatting dates. This function is similar to Oracle's to_date function. Many Oracle DBAs complained about the CONVERT function and its poor flexibility and now we have a new way to format dates in SQL Server.

With the FORMAT function we do not need to know the format number, we can just specify the format that we want and we get that format.

The syntax of the FORMAT function is the following:

FORMAT (Value,format[,culture])
GO

FORMAT Samples

Let's start with an example:

select FORMAT (getdate(), 'dd-MM-yy') as date
GO

The format is day-month-year. The output will be: 07-03-12.

Let's try another one:

select FORMAT (getdate(), 'hh:mm:ss') as time
GO

The format is hours:minutes:seconds. The output will be: 02:48:42.

Culture Option

Another option for this function is the culture. With the culture option you can obtain regional formatting.

For example the hour in USA format is:

select FORMAT (getdate(), 'd', 'en-us') as date
GO

The output is: 3/7/2012

Here is another example where we will use the Spanish culture in Bolivia (es-bo):

select FORMAT (getdate(), 'd', 'es-bo') as date
GO

The output is: 07/03/2012 which is different because each country has its own format.  In Bolivia the format is day, month, year where in the United States it is month, day, year.

For a complete list of values for cultures, tale a look at this article language codes.

More examples for the FORMAT function

Query

Sample output

select FORMAT (getdate(), 'dd/MM/yyyy ') as date07/03/2012
select FORMAT (getdate(), 'dd/MM/yyyy, hh:mm:ss ') as date07/03/2012, 11:33:13
select FORMAT (getdate(), 'dddd, MMMM, yyyy') as dateWednesday, March, 2012
select FORMAT (getdate(), 'MMM dd yyyy') as dateMar 07 2012
select FORMAT (getdate(), 'MM.dd.yy') as date03.07.12
select FORMAT (getdate(), 'MM-dd-yy') as date03-07-12
select FORMAT (getdate(), 'hh:mm:ss tt') as date11:36:14 AM
select FORMAT (getdate(), 'd','af') as date

转载于:https://www.cnblogs.com/flysun0311/archive/2012/05/09/2492109.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值