|
|
|
ต้องการหาระยะเวลาของการทำงาน ผู้รู้ช่วยตอบด้วยนะค่ะ |
|
|
|
|
|
|
|
ไปศึกษาฟังชั่นก์ datediff ของภาษา sql นะครับ เช่น
จงแสดง id, name, birthday ของนิสิตทุกคนที่มีอายุ 20 ปีขึ่นไป จะได้
select id, name, birthday from student where datediff(yyyy,birthday,getdate())>=20
ผมเข้าใจคำถามถูกป่ะครับ
|
|
|
|
|
Date :
2010-07-07 17:10:38 |
By :
blacklion |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คงจะประมาณนี้
SELECT t_start, t_end, TO_DAYS(t_end)-TO_DAYS(t_start) AS 'result'
แปลงวันที่ให้เป็นจำนวนวัน แล้วก็เอาจำนวนวันมาลบกัน
|
|
|
|
|
Date :
2010-07-08 02:43:15 |
By :
yogolas |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DATE SPAN เคยเขียน SCALAR FUNCTION ใน MSSQL นานมาละค่ะ
เดวจะค้นให้นะคะ
แต่อย่างง่ายก้อ
SELECT DATEDIFF(DAY ,[StartDate] ,[EndDate]) AS [dayInterval] FROM [tableName] WHERE ......
|
|
|
|
|
Date :
2010-07-08 04:19:29 |
By :
blurEyes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากนะค่ะ สำหรับทุกคำตอบ
|
|
|
|
|
Date :
2010-07-08 10:20:38 |
By :
nana3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าต้องการให้มันแสดงเป็นวันเดือนปีต้องทำยังไงค่ะ รบกวนอีกรอบค่ะ
|
|
|
|
|
Date :
2010-07-08 10:23:39 |
By :
nana3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าต้องการให้มันแสดงเป็นวันเดือนปี
ตามนี้ครับ
FROM_DAYS(TO_DAYS(t_end)-TO_DAYS(t_start)) AS 'result_date'
|
|
|
|
|
Date :
2010-07-08 11:20:40 |
By :
yogolas |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<?
$strDateTime1 = $objResult["Check_startyear"];
$strDateTime2 = $objResult["Check_endyear"];
function DateTimeDiff($strDateTime1,$strDateTime2){
$date = 0;
$hour = 0;
$min = 0;
$diff = strtotime($strDateTime2) - strtotime($strDateTime1);
$year = floor($diff / 31536000);
$month = floor(($diff % 31536000) / 2592000);
$date = floor(($diff-($year*31536000)-($month*2592000))/(86400));
echo "".$year." ปี ".$month." เดือน ".$date." วัน";
}
DateTimeDiff("$strDateTime1","$strDateTime2");
?>
แต่ไม่สามารถประยุกต์ใช้กับการดึงฐานข้อมูลได้ค่ะ รบกวนผู้รู้ช่วยตอบที่
|
|
|
|
|
Date :
2010-07-08 14:21:37 |
By :
nana3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมก็กำลังทำอยู่พอดี และทำได้น่าจะตรงกับคำถามของคุณ na เอามาฝากสมาชิก ดังนี้
- ตาราง MySQL มีคอลัมน์ชื่อ DATE_START, DATE_END รูปแบบเป็น date :- 2010-07-01
- เขียนสคริปต์
<? php
/* หาช่วงห่างของเวลา*/
/*------------------------------------------------------------------------------------------------------------*/
function daysDifference($endDate, $beginDate)
{
$date_parts1=explode("-", $beginDate);
$date_parts2=explode("-", $endDate);
$start_date=gregoriantojd($date_parts1[1], $date_parts1[2], $date_parts1[0]);
$end_date=gregoriantojd($date_parts2[1], $date_parts2[2], $date_parts2[0]);
return $end_date - $start_date;
}
/*------------------------------------------------------------------------------------------------------------*/
date_default_timezone_set("Asia/Bangkok");
include("config1.php");
$sql = "select DATE_START, DATE_END FROM $tblname";
$dbquery = mysql_db_query($dbname, $sql);
echo "<table width='50%' border='1'>
<tr><td>เริ่มต้น</td><td>สุดท้าย</td><td>ช่วงห่าง (วัน)</td></tr>";
while ($result = mysql_fetch_array($dbquery))
{
$beginDate=$result[DATE_START];
$endDate=$result[DATE_END];
echo " <tr> <td>$beginDate</td><td>$endDate</td>";
echo "<td>";
echo daysDifference($endDate,$beginDate);
echo"</td>";
}
?>
รันแล้วได้ผลดังนี้
|
|
|
|
|
Date :
2010-07-09 10:04:41 |
By :
aacha46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|