In this article we are going to see a very handy SQL Server T-SQL function for formatting date called Convert(). It is generally used to show date values in different styles or formats.
Normally any date value when entered in a SQL Server table gets displayed in the default format as YYYY-MM-DD. Many a times, in your client application you may need to change the output of date & time for display purpose. For doing this the T-SQL Convert function is used.
Now let us see the default presentation style of the hiredate column by executing the following SQL statement.
Image1-Default-date-format
data_to_be_converted - The date value which needs to be converted.
Style - There are some predefined style ids like 101 for American date format, 103 in British format and so on. The style chart has been shown next –
Now let us see the employee names & hiredate in American as well as British formats using T-SQL Convert function.
Using Convert to change from Float to Int
Image3-Changing-Float-To-Int
Using Convert to change from Number to Float
Image4-Number-to-Float
Using Convert to change from Number to Varchar
Image5-Number-to-Varchar
We have seen in this article that using T-SQL function Convert, we can display date in different formats and also can type cast one data type into another.
Normally any date value when entered in a SQL Server table gets displayed in the default format as YYYY-MM-DD. Many a times, in your client application you may need to change the output of date & time for display purpose. For doing this the T-SQL Convert function is used.
Convert Function Example
Let us create a sample database Convert_Demo in our SQL Server database instance.Use Master go Create Database Convert_Demo go Use Convert_Demo go CREATE TABLE EMP (EMPNO Integer Primary Key, ENAME Varchar(15), JOB Varchar(9), MGR Integer, HIREDATE date, SAL Integer, COMM Integer, DEPTNO Integer); go INSERT INTO EMP VALUES (7369, 'SMITH', 'CLERK', 7902, '12/17/80', 800, NULL, 20); INSERT INTO EMP VALUES (7499, 'ALLEN', 'SALESMAN', 7698, '5/20/81',1600, 300, 30); INSERT INTO EMP VALUES (7521, 'WARD', 'SALESMAN', 7698, '5/22/81', 1250, 500, 30); INSERT INTO EMP VALUES (7566, 'JONES', 'MANAGER', 7839, '4/2/81', 2975, NULL, 20); INSERT INTO EMP VALUES (7654, 'MARTIN', 'SALESMAN', 7698, '9/28/81', 1250, 1400, 30); INSERT INTO EMP VALUES (7698, 'BLAKE', 'MANAGER', 7839, '5/1/81', 2850, NULL, 30); INSERT INTO EMP VALUES (7782, 'CLARK', 'MANAGER', 7839, '6/9/81', 2450, NULL, 10); INSERT INTO EMP VALUES (7788, 'SCOTT', 'ANALYST', 7566, '12/9/82', 3000, NULL, 20); INSERT INTO EMP VALUES (7839, 'KING', 'PRESIDENT', NULL, '11/17/81', 5000, NULL, 10); INSERT INTO EMP VALUES (7844, 'TURNER', 'SALESMAN', 7698, '9/8/1981', 1500, 0, 30); INSERT INTO EMP VALUES (7876, 'ADAMS', 'CLERK', 7788, '1/12/83', 1100, NULL, 20); INSERT INTO EMP VALUES (7900, 'JAMES', 'CLERK', 7698, '12/3/81', 950, NULL, 30); INSERT INTO EMP VALUES (7902, 'FORD', 'ANALYST', 7566, '12/3/81', 3000, NULL, 20); INSERT INTO EMP VALUES (7934, 'MILLER', 'CLERK', 7782, '1/23/82', 1300, NULL, 10); go
Now let us see the default presentation style of the hiredate column by executing the following SQL statement.
select ename, hiredate from emp
Image1-Default-date-format
Syntax of Convert function
CONVERT(data_type(length),data_to_be_converted,style)Data_type(length) - varchar data type particulary for displaying dates in different format.
data_to_be_converted - The date value which needs to be converted.
Style - There are some predefined style ids like 101 for American date format, 103 in British format and so on. The style chart has been shown next –
Now let us see the employee names & hiredate in American as well as British formats using T-SQL Convert function.
select ename, hiredate as [Default Date Format], convert(varchar, hiredate, 101) as [American], convert(varchar, hiredate, 103) as [British] from empImage2-Changed-Date-Formats
Convert without StyleID:
Convert is also useful to convert from one data type to another – For example changing Float to Int, Number to Float or Number to Varchar.Using Convert to change from Float to Int
SELECT CONVERT(int, 14.85)
Image3-Changing-Float-To-Int
Using Convert to change from Number to Float
SELECT CONVERT(float, 14.0989654)
Image4-Number-to-Float
Using Convert to change from Number to Varchar
SELECT CONVERT(varchar(4), '12.3456')
Image5-Number-to-Varchar
No comments:
Post a Comment