從時間秒中獲取 當天凌晨0點0分的秒數:
比如根據 1390467136 (2014-01-23 16:52:16)計算得到時間 2014-01-23 00:00:00對應的秒數,
方法如下: select unix_timestamp( date_format(from_unixtime( 1390467136 ),'%y-%m-%d')) from dual;
查詢結果:1390406400
根據時間秒數得到 星期幾,查詢方法如下:
select weekday(from_unixtime( 1390467136 ,'%y-%m-%d'))+1 as wday from dual;
查詢結果是: 4
下面來看看這裡面用到的一些函式的含義:
函式:from_unixtime
作用:將mysql中以int(11)儲存的時間以"yyyy-mm-dd"格式來顯示。
語法:from_unixtime(unix_timestamp,format)
返回表示 unix 時間標記的乙個字串,根據format字串格式化。format可以包含與date_format()函式列出的條目同樣的修飾符。
根據format字串格式化date值。
下列修飾符可以被用在format字串中:
%m 月名字(january……december)
%w 星期名字(sunday……saturday)
%d 有英語字首的月份的日期(1st, 2nd, 3rd, 等等。)
%y 年, 數字, 4 位
%y 年, 數字, 2 位
%a 縮寫的星期名字(sun……sat)
%d 月份中的天數, 數字(00……31)
%e 月份中的天數, 數字(0……31)
%m 月, 數字(01……12)
%c 月, 數字(1……12)
%b 縮寫的月份名字(jan……dec)
%j 一年中的天數(001……366)
%h 小時(00……23)
%k 小時(0……23)
%h 小時(01……12)
%i 小時(01……12)
%l 小時(1……12)
%i 分鐘, 數字(00……59)
%r 時間,12 小時(hh:mm:ss [ap]m)
%t 時間,24 小時(hh:mm:ss)
%s 秒(00……59)
%s 秒(00……59)
%p am或pm
%w 乙個星期中的天數(0=sunday ……6=saturday )
%u 星期(0……52), 這裡星期天是星期的第一天
%u 星期(0……52), 這裡星期一是星期的第一天
%% 乙個文字「%」。
例子:
selectfrom_unixtime(
1390467136
,'%y-%m-%d %h:%i:%s'
) from dual;
date_format() 函式用於以不同的格式顯示日期/時間資料。
date_format(date,format)date 引數是合法的日期。format 規定日期/時間的輸出格式。
可以使用的格式有:
格式描述
%a縮寫星期名
%b縮寫月名
%c月,數值
%d帶有英文本首的月中的天
%d月的天,數值(00-31)
%e月的天,數值(0-31)
%f微秒
%h小時 (00-23)
%h小時 (01-12)
%i小時 (01-12)
%i分鐘,數值(00-59)
%j年的天 (001-366)
%k小時 (0-23)
%l小時 (1-12)
%m月名
%m月,數值(00-12)
%pam 或 pm
%r時間,12-小時(hh:mm:ss am 或 pm)
%s秒(00-59)
%s秒(00-59)
%t時間, 24-小時 (hh:mm:ss)
%u周 (00-53) 星期日是一周的第一天
%u周 (00-53) 星期一是一周的第一天
%v周 (01-53) 星期日是一周的第一天,與 %x 使用
%v周 (01-53) 星期一是一周的第一天,與 %x 使用
%w星期名
%w周的天 (0=星期日, 6=星期六)
%x年,其中的星期日是周的第一天,4 位,與 %v 使用
%x年,其中的星期一是周的第一天,4 位,與 %v 使用
%y年,4 位
%y年,2 位
date_format(now(),'%b %d %y %h:%i %p')結果類似:date_format(now(),'%m-%d-%y')
date_format(now(),'%d %b %y')
date_format(now(),'%d %b %y %t:%f')
dec 29 2008 11:45 pm12-29-2008
29 dec 08
29 dec 2008 16:25:46.635
mysql中的unix_timestamp函式有兩種型別供呼叫
1 無引數呼叫:unix_timestamp()
返回值:自'1970-01-01 00:00:00'的到當前時間的秒數差
例子:select unix_timestamp() => 1339123415
2 有引數呼叫:unix_timestamp(date)
其中date可以是乙個date字串,乙個datetime字串,乙個timestamp或者乙個當地時間的yymmdd或yyymmdd格式的數字
返回值:自'1970-01-01 00:00:00'與指定時間的秒數差
舉例說明: www.2cto.com
date字串格式:(日期型別)
select unix_timestamp(『2012-06-08』) => 1339084800
select unix_timestamp(current_date()) =>1339084800
注:current_date ()的返回值是乙個date字串格式
以下幾種格式返回的結果相同:
select unix_timestamp('20120608');
select unix_timestamp('2012-6-8');
select unix_timestamp('2012-06-08');
結果都是:1339084800
datetime字串格式:(日期和時間的組合型別)
select unix_timestamp(『2012-06-08 10:48:55』) => 1339123415
select unix_timestamp(now()) => 1339123415
注:now()的返回值是乙個datetime字串格式
mysql week… 函式:week(), weekofyear(), dayofweek(), weekday(), yearweek()
set @dt = '2008-08-08';
select week(@dt); -- 31
select week(@dt,3); -- 32
select weekofyear(@dt); -- 32
select dayofweek(@dt); -- 6
select weekday(@dt); -- 4
select yearweek(@dt); -- 200831
mysql week() 函式,可以有兩個引數,具體可看手冊。 weekofyear() 和 week() 一樣,都是計算「某天」是位於一年中的第幾周。 weekofyear(@dt) 等價於 week(@dt,3)。
mysql weekday() 函式和 dayofweek() 類似,都是返回「某天」在一周中的位置。不同點在於參考的標準, weekday:(0 = monday, 1 = tuesday, …, 6 = sunday); dayofweek:(1 = sunday, 2 = monday, …, 7 = saturday)
mysql yearweek() 函式,返回 year(2008) + week 位置(31)。
mysql時間戳和日期轉換
mysql有自帶的函式可以直接轉換,函式是from unixtime 資料表中 create time 儲存的是時間戳,如 1429063399 mysql的執行語句 日期合格可以自己定義 select from unixtime 1429063399,y m d h i s 輸出結果 mysql的...
mysql和php 一些時間函式
curdate 返回當前日期 2011 2 sql date 2011 03 23 返回表示式中的日期 2011 03 23 hour time 返回time中的小時 hour 10 23 12 返回10 second time 返回秒 minute time datediff 函式返回兩個日期之間...
mysql中的時間戳和日期時間的轉換
1 unix時間戳轉換為日期用函式 from unixtime select from unixtime 1156219870 輸出 2006 08 22 12 11 10 2 日期轉換為unix時間戳用函式 unix timestamp select unix timestamp 2006 11 ...