PHP MS SQL nepřijímá formát datetime2(0)

PHP MS SQL nepřijímá formát datetime2(0)
« kdy: 22. 10. 2021, 19:15:32 »
Zdravim.
Preco mi nechce zapisat datetime ktory konverujem so stringu do microsoft SQL databazy?

Kód: [Vybrat]
$Time_in = $year.'-'.$month.'-'.$day.' '.$rest;
       $date = strtotime($Time_in);
       $Time_in= date("Y-m-d H:i:s", $date);;

vygeneruje 2021-10-22 05:10:19

Kód: [Vybrat]
$query_in = "INSERT INTO table (UID,Time_in,Time_out)
       VALUES ('$UID',$Time_in')
a zomrie na
Kód: [Vybrat]
Time IN2021-10-22 17:00:19DoneArray ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 102 [code] => 102 [2] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Incorrect syntax near '17'. [message] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Incorrect syntax near '17'. ) )

Preco?
Alebo ako pekne ulozit datum a cas so stringu do databazy kde je bunka vo formate datetime2.
« Poslední změna: 22. 10. 2021, 19:55:30 od Petr Krčmář »


Re:PHP MS SQL nepřijímá formát datetime2(0)
« Odpověď #1 kdy: 22. 10. 2021, 20:26:04 »
naozaj možná pretože v první záviorce máš 3 proměný ale vo values jenom dvě  :o ;)
Kód: [Vybrat]
$query_in = "INSERT INTO table (UID,Time_in,Time_out)
       VALUES ('$UID',$Time_in')

joa používej něco proti sqlinjectu hele třeba  :o ;) jak se to jako dělá vtom odbc nevim :D
lidi postižený environmentálním žalem hele choděj za ekopsycholožkama hele 🤡 💆 🤡 💆

Re:PHP MS SQL nepřijímá formát datetime2(0)
« Odpověď #2 kdy: 22. 10. 2021, 20:52:54 »
Wrana tie premenne neries to som osekal mega dlhu query. Ale aj tak dik

Re:PHP MS SQL nepřijímá formát datetime2(0)
« Odpověď #3 kdy: 22. 10. 2021, 21:26:45 »
Ked to supem ako string tak to zomrie na
Kód: [Vybrat]
Time IN2021-10-22 17:00:19DoneArray ( [0] => Array ( [0] => 22007 [SQLSTATE] => 22007 [1] => 241 [code] => 241 [2] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Conversion failed when converting date and/or time from character string. [message] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Conversion failed when converting date and/or time from character string. ) )

Re:PHP MS SQL nepřijímá formát datetime2(0)
« Odpověď #4 kdy: 22. 10. 2021, 21:29:41 »
Proč si myslíte, že MSSQL server očekává datum a čas zrovna v tomhle formátu? Zrovna u MSSQL by mne vůbec nepřekvapilo, kdyby implicitní formát data a času záležel na nastavení locale serveru nebo spojení.

V té syntaxi se mu nelíbí něco kolem '17' – to byl den, hodiny, nebo něco jiného? Pokud hodiny, nechutnal by mu lépe ISO formát času, tedy YYYY-MM-DD'T'HH:MM:SS, tedy třeba 2021-10-22T21:29:35?


Re:PHP MS SQL nepřijímá formát datetime2(0)
« Odpověď #5 kdy: 22. 10. 2021, 21:58:56 »
Filip Jirsák : tazko povedat. Resp je to mega moloch v jednej firme. A original data su v varchar teda string "22-10-2021 17:00:19" v pythone som musel spravit "prasacinu" v style
Kód: [Vybrat]
format = '%d-%m-%Y %H:%M:%S'
                                new_format = '%Y-%m-%d %H:%M:%S'
                                dt_string = datetime.strptime(dt_string, format).strftime(new_format)
a pekne mi to beha. V php som rozbil string na den mesiac rok a zvysok a snazim sa to tam nieako natlacit.
Nie je to moja appka a prerabam to len k tomu ma pristup asi 50 devices a vsetky to tam prasia ako string takze je nerealne to prekopat na datetime ale v "novej" azure databaze to uz chlapec nastavil ako datetime2(0) a chce aby mu tato "appka" preklapala string na ten datetime2. Skusim som vasu radu ale nechce to papat.
Kód: [Vybrat]
Time IN 2021-10-22T17:00:19 DoneArray ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 102 [code] => 102 [2] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Incorrect syntax near 'T17:'. [message] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Incorrect syntax near 'T17:'. ) [1] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 132 [code] => 132 [2] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]The label 'T17' has already been declared. Label names must be unique within a query batch or stored procedure.
« Poslední změna: 22. 10. 2021, 22:00:37 od Wangarad »

Re:PHP MS SQL nepřijímá formát datetime2(0)
« Odpověď #6 kdy: 22. 10. 2021, 22:53:52 »
Kdovi jakej format data je nastaveny v ODBC, nebo buhvi kde.
Kdyz das vyselectovat aktualni datum, tak ti to vrati naformatovane jak?

Re:PHP MS SQL nepřijímá formát datetime2(0)
« Odpověď #7 kdy: 22. 10. 2021, 23:32:29 »
The label 'T17' has already been declared. Label names must be unique within a query batch or stored procedure.

Nechybí vám tam doopravdy ten apostrof před $Time_in?

Kód: [Vybrat]
$query_in = "INSERT INTO table (UID,Time_in,Time_out)
       VALUES ('$UID',$Time_in')

Z té hlášky to totiž vypadá, že když jste tam přidal T před hodinu, vyskytuje se tam někde T17 mimo string.