formato date_time

marcick

Member
Dadabik 6.2 basic
Apache 2.2.21
PHP 5.38
MySql 5.5.16

Ciao Eugenio,
in MySql ho un campo di tipo Timestamp con attributo "on update CURRENT_TIMESTAMP"
Viene regolarmente aggiornato quando modifico un qualunque altro campo del record e il formato data/ora è di tipo "2015-11-03 09:57:33"
In Dadabik ho trovato solo il field type "update_date" ma quando modifico il record mi trovo la data senza ora e nel formato 'numeric_english'. In config.php non trovo l'opzione giusta come serve a me.
Per avere la data/ora nello stesso formato Timestamp di Mysql devo passare alla licenza pro per usare le "custom formatting functions" ?
Grazie
Marco
 

eugenio

Administrator
Staff member
O usi l'approccio mysql o quello dadabik. Come ti dicevo nell'altro thread se usi update_date il campo mysql deve essere date_time, no Timestamp no attributo "on update CURRENT_TIMESTAMP"
 

marcick

Member
Il database viene compilato in remoto da apparecchiature esterne e il campo Timestamp lo scrive MySql nel momento che arriva il record.
Al tempo stesso vorrei dare all'utente una semplice interfaccia per modificare i record, sempre facendo in modo che il Timestamp si aggiorni automaticamente e mantenga lo stesso formato di MySql.
Quindi non è fattibile ?
 

eugenio

Administrator
Staff member
Si', e' fattibile, come ti ho scritto prima devi seguire queste semplici istruzioni:
- campo mysql: date_time
- field type dadabik: update_date

tutto qua, ogni volta che premi salva il campo (non visibile in edit) viene aggiornato da dadabik. Cosa non funziona?

Alternativa, se vuoi farlo aggiornare da mysql
- campo mysql:timestamp, clausola on update CURRENT_TIMESTAMP"
- field type dadabik: date_time
 

marcick

Member
Scusa ma o faccio fatica a spiegarmi o sono veramente tordo a capire.
Il primo metodo che proponi è:


Problema 1: quando i record vengono scritti dalle apparecchiature esterne, il campo date_time non viene compilato perchè non posso mettere la clausola onupdate

Problema 2: Quando aggiorno i record da dadabik, mi imposta solo la data, lasciando l'ora a "00:00:00"

Secondo metodo:


Se aggiorno un record da una apparecchiatura esterna o da PhpMyAdmin vedo la data/ora che si aggiorna correttamente da sola.
Se aggiorno un record conb dadabik la data/ora rimane invariata. Perchè ?
 

eugenio

Administrator
Staff member
Se non puoi mettere la clausola on update (ma non capisco come sia possibile, non hai accesso al db ad es. via phpmyadmin?) allora la soluzione 1 non e' praticabile. Nel primo messaggio hai scritto "in MySql ho un campo di tipo Timestamp con attributo "on update CURRENT_TIMESTAMP"

La soluzione due funziona ovviamente solo quando e' dadabik ad aggiornare il record, se viene aggiornato in altro modo dadabik non puo' intervenire.
 

marcick

Member
Nel caso 1, se imposto il campo come "DateTime", MySql dice

#1294 - Invalid ON UPDATE clause for 'StoTime' column

Cioè la clausola OnUpdate la accetta solo se il campo è TimeStamp.

La soluzione due funziona invece al contrario di come dici sopra, ripeto:
Quando sono altri ad aggiornare il record (phpmyadmin o le mie apparecchiature esterne) il campo DataOra si aggiorna automaticamente con l'ora del momento.
Quando è Dadabik a farlo, il campo DataOra rimane invariato

Non vorrei che nei vari tentativi fosse rimasto qualcosa di sporco che compromette tutto. Più tardi provo a pulire tutto e rifare con un nuovo database.
 

eugenio

Administrator
Staff member
Secondo me continui a mischiare le due cose, incollo ancora qua sotto le due soluzioni, vanno seguite esattamente come sono scritte senza aggiungere altro:

soluzione 1
- campo mysql: date_time
- field type dadabik: update_date


souzione 2
- campo mysql:timestamp, clausola on update CURRENT_TIMESTAMP"
- field type dadabik: date_time

Come vedi in nessuno dei due casi c'e' un campo mysql date_time con clausola on update; la clausola on update c'e' solo nel secondo caso, con campo timestamp.
 

marcick

Member
Non so cosa dire, sono ripartito da una installazione pulita.

La soluzione 1 la scarto perchè con quella il campo con il datetime non si aggiornerebbe quando il record è modificato fuori da dadabik.

Con la soluzione 2, modifico un campo qualunque del record con dadabik, ma il campo con il datetime non si aggiorna.

MI arrendo ?
 

eugenio

Administrator
Staff member
soluzione 2: a me sembra impossibile, a meno che tu non abbia messo il campo visibile nella edit form.
 

marcick

Member
Diavolo, certo, era visibile !
Pensavo che poi lo avrei voluto nascondere ma non che causasse questo problema.
Bene, risolto. Grazie ancora per la pazienza ....
Ciao
Marco
 
Top