/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Running time
Fra : Martin


Dato : 10-03-09 10:04

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

 
 
Martin (10-03-2009)
Kommentar
Fra : Martin


Dato : 10-03-09 10:08

Martin wrote:
> HAVING
> bidnumbers > (NOW()-p.starttime/TIME_TO_SEC(p.time_interval))

Den linje skulle nu være

bidnumbers >
(NOW()-product_unix_startdate/TIME_TO_SEC(product_time_interval))

Martin (10-03-2009)
Kommentar
Fra : Martin


Dato : 10-03-09 10:08

Martin wrote:
> HAVING
> bidnumbers > (NOW()-p.starttime/TIME_TO_SEC(p.time_interval))

Den linje skulle nu være

bidnumbers >
(NOW()-product_unix_startdate/TIME_TO_SEC(product_time_interval))

Søg
Reklame
Statistik
Spørgsmål : 177578
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste