2010-08-28 38 views
0

對於給定的日期字段(在sql中格式爲:yyyy-mm-dd),我想輸出它作爲週數。試圖讓週數過期字段

我試圖使用date(),但沒有真正解決。

SQL領域:YYYY-MM-DD

所需的輸出:第12周 - 2010

有誰知道如何做到這一點?提前致謝!!

+0

那你嘗試沒有成功? 'date()'完全是你想要的。 – 2010-08-28 12:47:06

+0

是的,但不知何故(是的,我知道,我感到愚蠢)我不能得到W-Y的權利:) – 2010-08-30 08:47:33

回答

0

使用strtotimedate

<?php 
$sqldate = "2010/08/28"; 

echo date("\W\e\e\k W - Y", strtotime($sqldate)); 
?> 
+0

thx!這很容易,我無法抗拒。我忘了把strtotime()放在我自己的日期實驗中。謝謝! – 2010-08-28 15:27:04

+0

不客氣。 – shamittomar 2010-08-28 15:28:51

1

如果你只想做在MySQL中,你可以使用WEEK()功能:

SELECT WEEK(date) as week, YEAR(date) as year FROM mytable 

注意,你可能需要指定一個模數的WEEK()來告訴MySQL開始一週中的一天上。例如。一些服務器可能配置爲在星期一開始幾周,而其他服務器可能在星期日開始。

SELECT WEEK(date, 0) as week ... /* explicitly start weeks on Sundays */ 

還有其他的週數函數的MySQL,你可能想看看,如YEARWEEK(),返回年+週數(如201012):

http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html#function_week

+0

thx爲你的答案!另一個選項雖然沒有改變sql查詢更容易一些。 – 2010-08-28 15:29:18

0

嘗試這樣的:

$bits = explode("-", "2010-08-28"); 
echo date("W", mktime(0, 0, 0, $bits[1], $bits[2], $bits[0])); 
0

在PHP中,你可以試試這個:

echo date("\Week W - Y", date_parse($sql_date_from_db))