Hej!
Jeg sidder med noget auktions lign. ting.
I nuværende SQL, der vil auktionen kører 24/7, så længe der er bud.
Men nu vil jeg gerne have indopereret en running time, så auktionen
nærmest bliver pauset imellem 2 tidspunkter.
Lidt om de 2 tabeller
products tabellen
id = INT, primary key
startdate = DATETIME, tidspunkt for hvornår auktionen skal starte
time_interval = TIME, antal tid for hvornår et bud skal trækkes fra
price_pr_bid = INT, Pris pr bud
runningtime_start = TIME, tidspunkt på hvornår en auktion skal løbe
runningtime_end = TIME, tidspunkt på hvornår en auktion skal stoppe
(tidspunktet imellem runningtime vil være "pause" tiden)
products_bids tabellen
product_id = relation til products
members_id = relation til medlems tabellen (ikke væsentlig i denne
sammenhæng)
(products_bids kan kun indeholde 1 bud, så hvis en bruger smider 10 bud,
så kommer der 10 rækker i tabellen)
På nuværende tidspunkt ser min SQL således ud, og den virker som den skal
SELECT
COUNT(b.product_id) AS bidnumbers,
((NOW()-p.startdate/TIME_TO_SEC(p.time_interval))*price_pr_bid),
UNIX_TIMESTAMP(p.startdate) AS product_unix_startdate,
p.time_interval AS product_time_interval,
FROM
products AS p
JOIN
products_bids AS b
ON
b.product_id = p.id
WHERE
p.deleted = "0"
AND
(NOW() > p.startdate)
GROUP BY
b.product_id
HAVING
bidnumbers > (NOW()-p.starttime/TIME_TO_SEC(p.time_interval))
ORDER BY
p.startdate DESC
Men er der nogle der har en idé til hvordan man ville indoperere den
runningtime funktion?
Der køres iøvrigt med MySQL 5.1
|