1

私は駐車システムを持っており、POS プリンターに印刷するよりも価格を計算するための PHP スクリプトを作成しようとしています。

mssql から次のように挿入された時間を取得します: 2013-01-04 12:49:49

までの経過時間を計算したいtimenow();

このような値を分単位で設定するよりも:

if 30 = 0;
if 60 = 1;
if 120 = 2,50

……そして、:-)

出来ますか?

4

1 に答える 1

0

これを試してくださいDATEDIFF

   SELECT CASE `X.ElapsedTime` 
               WHEN  MOD 30 = 0 THEN 0
               WHEN MOD 60 = 0 THEN 1 
               WHEN MOD 120 = 0 THEN 2 
               ELSE Null END AS `ElapsedCount` 
   FROM (SELECT  DATEDIFF(mi, startime, GetDate()) AS `ElapsedTime`
   FROM yourtable) X;

別のアプローチは次のとおりです(必要に応じて切り上げることができます):

   SELECT (`X.ElapsedTime`/60 + '.' + `X.ElapsedTime` MOD 60) as `ElapsedCount`
   FROM (SELECT  DATEDIFF(mi, startime, GetDate()) AS `ElapsedTime`
   FROM yourtable) X;

または使用hh

   SELECT  DATEDIFF(hh, startime, GetDate()) AS `ElapsedCount`
   FROM yourtable;

JOIN を使用するためのコメント内の EDITING OP'S クエリ

SELECT top 1 dbo.Partners.IdPartner AS pid, 
dbo.Partners.PartnerName AS name, dbo.Partners.MemberNumber AS nr, 
dbo.T_PAID_KARTE.MAGNETNA_COD, dbo.T_PAID_KARTE.ACTIVE AS active, 
dbo.T_PAID_KARTE.TYP AS cardnime, dbo.T_PAID_KARTE.ID_PAIDBY, 
dbo.T_LOGG.EXIT AS exittime, DATEDIFF(mi, exittime, GetDate()) AS ElapsedCount, 
dbo.T_LOGG.ID_PARTNER 
FROM dbo.Partners
INNER JOIN dbo.T_PAID_KARTE
ON 
INNER JOIN dbo.T_LOGG
ON 
;
于 2013-02-04T17:07:23.297 に答える