Monday, May 4, 2009

Date Format in SQL

MS SQL
-- in this sample Dateadd() function retrieve that day befor 7 days by getdate() , then format it to varchar
-- the format as a date of japan yy/mm/dd
-- convert() function format date to 111 as japan date format , like this yyyy/mm/dd
select convert(varchar(20), DATEADD(day, -7, getdate()) ,111)

-- This sample casting date to float and floor the times part to 00:00:00.000
-- so that return the result same as 2008-10-22 00:00:00.000
-- If you trying to compare two datetime, this probably is best choice
SELECT CAST(FLOOR( CAST( GETDATE() AS FLOAT ) )AS DATETIME)


MySQL
-- Format a DATETIME or TIMESTAM to VARCHAR
-- for sample 2009-06-19 13:30:21

DATE_FORMAT(update_date,'%Y-%m-%d %T')

The formats that can be used are:

Format Description
%a Abbreviated weekday name
%b Abbreviated month name
%c Month, numeric
%D Day of month with English suffix
%d Day of month, numeric (00-31)
%e Day of month, numeric (0-31)
%f Microseconds
%H Hour (00-23)
%h Hour (01-12)
%I Hour (01-12)
%i Minutes, numeric (00-59)
%j Day of year (001-366)
%k Hour (0-23)
%l Hour (1-12)
%M Month name
%m Month, numeric (00-12)
%p AM or PM
%r Time, 12-hour (hh:mm:ss AM or PM)
%S Seconds (00-59)
%s Seconds (00-59)
%T Time, 24-hour (hh:mm:ss)
%U Week (00-53) where Sunday is the first day of week
%u Week (00-53) where Monday is the first day of week
%V Week (01-53) where Sunday is the first day of week, used with %X
%v Week (01-53) where Monday is the first day of week, used with %x
%W Weekday name
%w Day of the week (0=Sunday, 6=Saturday)
%X Year of the week where Sunday is the first day of week, four digits, used with %V
%x Year of the week where Monday is the first day of week, four digits, used with %v
%Y Year, four digits
%y Year, two digits