PHP MySQL vs MSSQL

PHP MySQL vs MSSQL
« kdy: 05. 11. 2020, 16:18:28 »
Zakaznik ma databazu v MsSQL a bohuzial mam s toho smutok lebo musim poprepisovat vsetky query.
Zasekol som sa pri count().
V databaze pouzijem
Kód: [Vybrat]
SELECT COUNT(*) FROM [Result].[dbo].[Line01] WHERE [Station]= 'DFKRM067'ale neviem ako to vytiahnut v php do premennej.
Niekto tip?


Logik

  • *****
  • 1 022
    • Zobrazit profil
    • E-mail
Re:PHP MySQL vs MSSQL
« Odpověď #1 kdy: 05. 11. 2020, 16:28:23 »
Nerozumím dotazu. Pokud použiješ PDO, tak čím se zde (kromě syntaxe pro escape identifikátorů) MySQL liší od MSSQL?
SELECT COUNT(...)je select jako každej jinej, to, že vrací vždy jednu řádku je z hlediska zacházení s výsledkem dotazu irelevantní(navíc při group by vracel i víc řádek, ale to už se evidentně zaplejtáme do vyšší dívčí... :-()

Kit

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:PHP MySQL vs MSSQL
« Odpověď #2 kdy: 05. 11. 2020, 17:18:34 »
Asi tam bude nutné použít alias:
Kód: [Vybrat]
SELECT COUNT(*) AS count
    FROM [Result].[dbo].[Line01]
    WHERE [Station]= 'DFKRM067'

hechj

Re:PHP MySQL vs MSSQL
« Odpověď #3 kdy: 05. 11. 2020, 23:08:32 »
Řekni mi, kdy jsi vzal zákazníka, když tu pokládáš triviální dotazy řešitelné čtením dokumentace. To je nějaká sranda?

Re:PHP MySQL vs MSSQL
« Odpověď #4 kdy: 06. 11. 2020, 07:35:36 »
hechj : vies kazdy nieako zacinal. Ja viem ze ty si si nastudoval vsetky manualy, dokumentacie, vystudoval 3 vysoke skoly a ako hotovy clovek si hned nastupil do prace. Bohuzial ja musim skakat s projektu do projektu a casto uplne mimo moj obor lebo zameranie. Nestazujem sa len proste nie vzdy davam uplne vsetko.


oss

  • ***
  • 229
    • Zobrazit profil
    • E-mail
Re:PHP MySQL vs MSSQL
« Odpověď #5 kdy: 06. 11. 2020, 07:57:00 »
No ked ides do dachoho noveho neuskodili by aspon elementarne zaklady.

Re:PHP MySQL vs MSSQL
« Odpověď #6 kdy: 06. 11. 2020, 08:34:11 »
oss mas pravdu. Obcas sa mi to strasne mixuje. S mysql na mssql s php na python pripadne c# a s5 a vlastne kazdy den v inom jazyku nieco zmenit. Niekde musi byt '' niekde praveze nie.Minule som sa pristihol ze pisem php do pythonu a rozmyslam preco to nejde. napriklad v horizonte par dni ma caka delphi az sa zamyslam ze preco.

Re:PHP MySQL vs MSSQL
« Odpověď #7 kdy: 06. 11. 2020, 08:45:43 »
Napriklad teraz. mysql dava cas ako potrebujem HH:mm mssql HH:mm:s a ries preco resp. ako to zmenit :/

jnnj

Re:PHP MySQL vs MSSQL
« Odpověď #8 kdy: 06. 11. 2020, 09:15:36 »
Napriklad teraz. mysql dava cas ako potrebujem HH:mm mssql HH:mm:s a ries preco resp. ako to zmenit :/

dokumentace date() ukazuje způsob formátování času.

Například tady:
Kód: [Vybrat]
Example #4 date() Formatting
$today = date("H:i:s");                         // 17:16:18
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)
« Poslední změna: 06. 11. 2020, 09:17:37 od jnnj »

Kit

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:PHP MySQL vs MSSQL
« Odpověď #9 kdy: 06. 11. 2020, 10:03:58 »
Napriklad teraz. mysql dava cas ako potrebujem HH:mm mssql HH:mm:s a ries preco resp. ako to zmenit :/

dokumentace date() ukazuje způsob formátování času.

Například tady:
Kód: [Vybrat]
Example #4 date() Formatting
$today = date("H:i:s");                         // 17:16:18
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)

Možná sis nevšiml, že to nepotřebuje v PHP, ale v MSSQL.

jnnj

Re:PHP MySQL vs MSSQL
« Odpověď #10 kdy: 06. 11. 2020, 10:37:39 »
Napriklad teraz. mysql dava cas ako potrebujem HH:mm mssql HH:mm:s a ries preco resp. ako to zmenit :/

dokumentace date() ukazuje způsob formátování času.

Například tady:
Kód: [Vybrat]
Example #4 date() Formatting
$today = date("H:i:s");                         // 17:16:18
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)

Možná sis nevšiml, že to nepotřebuje v PHP, ale v MSSQL.

Dobrý den,
všiml, ale vycházím z cituji:
Citace
ale neviem ako to vytiahnut v php do premennej.
čili mu jde o formátování / zobrazení v PHP.

jnnj

Re:PHP MySQL vs MSSQL
« Odpověď #11 kdy: 06. 11. 2020, 10:39:59 »
Pokud by přeci je Kit měl pravdu a jde tazateli jen o MS SQL formát datumu, pak SELECT FORMAT, popsané například tady.

Kit

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:PHP MySQL vs MSSQL
« Odpověď #12 kdy: 06. 11. 2020, 11:28:18 »
Zajímavé, že všechny návody to uvádějí pro aktuální datum a čas. Přitom tazatele nejspíš zajímá prezentace času z databázových tabulek.
Kód: [Vybrat]
SELECT FORMAT([timestamp], 'hh:mm') AS ts
    FROM [Result].[dbo].[Line01]
    WHERE [Station]= 'DFKRM067'
Zbavme se iluze, že SQL dotazy pro MySQL a MSSQL (případně dalších db) mohou být stejné. Ovšem mohou dávat výsledky ve stejné struktuře. Následné použití v PHP je pak už hračkou bez zbytečného volání funkcí pro datum a čas.

Ovšem jako nejlepší se mi jeví vyzvednutí data a času ve formátu ISO8601 a jeho zformátování až v prohlížeči Javascriptem. Odstraní se tím problémy s časovými zónami.

hechj

Re:PHP MySQL vs MSSQL
« Odpověď #13 kdy: 06. 11. 2020, 11:43:49 »
Sorry kámo. Samozřejmě jsem taky začínal od píky, nejsem kdovíjaký borec.
V databázi jsem vždy používal timestamp. V mysql jsou krásné funkce hour(), minute(), v MsSQL funkce date() s formatovacim řetězcem. Výstup formatuj v PHP. Ale jestli to chceš univerzální, tak to naformatuj v SQL a v PHP to nebudeš muset  rozlišovat. Doporučuji číst dokumentaci, zrovna na toto je to v PHP srozumitelné.

Re:PHP MySQL vs MSSQL
« Odpověď #14 kdy: 06. 11. 2020, 13:56:40 »
Zrovna teď mám na stole zakázku na překlopení web aplikace (odhadem tak 100k řádek, 99% SQL kódu přímo v aplikaci) z MS SQL na MySQL při zachování veškeré funkčnosti.
Je to naceněné a odsouhlasené na 20 dní práce.
SQL jazyk je sice teoreticky stejný, ale rozhodují právě ty drobné rozdíly v názvech a parametrech funkcí, v default vstupních a výstupních hodnotách (třeba CONVERT(datetime,@date,104) mi MySQL opravdu neskousne) - bude to potřeba celé projít otestovat a upravit.