私は駐車システムを持っており、POS プリンターに印刷するよりも価格を計算するための PHP スクリプトを作成しようとしています。
mssql から次のように挿入された時間を取得します: 2013-01-04 12:49:49
までの経過時間を計算したいtimenow();
このような値を分単位で設定するよりも:
if 30 = 0;
if 60 = 1;
if 120 = 2,50
……そして、:-)
出来ますか?
私は駐車システムを持っており、POS プリンターに印刷するよりも価格を計算するための PHP スクリプトを作成しようとしています。
mssql から次のように挿入された時間を取得します: 2013-01-04 12:49:49
までの経過時間を計算したいtimenow();
このような値を分単位で設定するよりも:
if 30 = 0;
if 60 = 1;
if 120 = 2,50
……そして、:-)
出来ますか?
これを試してください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;
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
;