[PHP/MSSQL] datetime object en verschillende talen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • daank
  • Registratie: Januari 2001
  • Laatst online: 12:56

daank

Internet _H3nk

Topicstarter
Hallo,

Sinds kort heb ik een project gekregen wat zo gezegd half af is.
Dit project draait op een Windows 2003 WEB (alles engelse taal) icm MS-SQL 2000 (ook engels)
Mijn werkstation waar ik alles lokaal wil ontwikkelen is Windows XP Pro met MS-SQL 2005, op mijn werkstation is alles in het nederlands.

Nu heb ik dus problemen om te zorgen dat er altijd een juiste datum word ge-insert/-update

Ik weet dat je met de CONVERT functie datums kan formateren naar je lokale instellingen.
maar dit wil op mijn lokale machine niet lekker lopen en resulteert vaak in foutmeldingen of gewoon een NULL value als dit is toegestaan in dat column

Hoe kan ik er voor zorgen dat ik netjes datums in het datetime object kan stoppen?

Acties:
  • 0 Henk 'm!

  • mees
  • Registratie: December 2000
  • Laatst online: 06-08 11:13

mees

Duuuussss...

Het zou al een hoop helpen als je 'foutmeldingen' iets verder definiëert. Wij hebben geen glazen bol natuurlijk.

Wat gaat er precies mis, wat wil je bereiken, en waarom kun je het niet bereiken?

8 bitterballen = 1 byterbal


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 14:53

MueR

Admin Tweakers Discord

is niet lief

Hoe stel jij in je script de locale in dan? Via setlocale()?

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Een workaround is je regionale instellingen op Engels (Verenigde Staten) zetten zodat nummers, valuta en datum een Amerikaanse notatie aanhouden.

If it isn't broken, fix it until it is..


Acties:
  • 0 Henk 'm!

  • Luqq
  • Registratie: Juni 2005
  • Laatst online: 19-09 14:23
Gewoon timestamp erin gooien?

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Kun je niet gewoon de instelling in sql server aanpassen? zie hier, laatste post: http://www.webmasterworld.com/forum47/1853.htm

Acties:
  • 0 Henk 'm!

  • daank
  • Registratie: Januari 2001
  • Laatst online: 12:56

daank

Internet _H3nk

Topicstarter
mees schreef op donderdag 29 januari 2009 @ 15:29:
Het zou al een hoop helpen als je 'foutmeldingen' iets verder definiëert. Wij hebben geen glazen bol natuurlijk.

Wat gaat er precies mis, wat wil je bereiken, en waarom kun je het niet bereiken?
de volgende foutmelding komt naar voren
Warning: mssql_query() [function.mssql-query]: message: Cannot insert the value NULL into column 'KRS_audit_opl_deadline', table 'DB_KRS.Digitale.KRS_audit_opl'; column does not allow nulls. INSERT fails. (severity 16) in C:\Inetpub\wwwroot\KRS\core\classes\database.class.php on line 116
de volgende query genereert die error
INSERT INTO Digitale.KRS_audit_opl(KRS_audit_opl_audit_id, KRS_audit_opl_omschrijving, KRS_audit_opl_gradatie, KRS_audit_opl_cckl, KRS_audit_opl_cckl_sub, KRS_audit_opl_procedure, KRS_audit_opl_maatregel,KRS_audit_opl_deadline, KRS_audit_opl_afd, KRS_audit_opl_hoofdstuk, KRS_audit_part_opmerking) VALUES ( '181','blabla','1','1','21','Niet aanwezig','', CONVERT(CHAR(24),'2009/01/30 ', 20),'24','1','')
Wat ik wil bereiken is dat als iemand een datum invult dmv een datepicker deze ook netjes in de database komt te staan.
MueR schreef op donderdag 29 januari 2009 @ 15:30:
Hoe stel jij in je script de locale in dan? Via setlocale()?
nope .. heb helemaal geen local gesteld
Niemand_Anders schreef op donderdag 29 januari 2009 @ 15:31:
Een workaround is je regionale instellingen op Engels (Verenigde Staten) zetten zodat nummers, valuta en datum een Amerikaanse notatie aanhouden.
Heb ik al gedaan, heeft helaas geen effect
Er zijn andere applicaties die vanuit diezelfde database data gaan halen, die applicaties zijn geschreven in .net. een datetime object is dan beter.
Tevens vind ik dit verder niet een goede oplossing
Noork schreef op donderdag 29 januari 2009 @ 15:51:
Kun je niet gewoon de instelling in sql server aanpassen? zie hier, laatste post: http://www.webmasterworld.com/forum47/1853.htm
Aha, hier moet ik eens mee aan de slag gaan , bedankt!

[ Voor 32% gewijzigd door daank op 29-01-2009 15:57 ]


Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
NULL is niks toch? Wat is de query, en echo deze ook eens naar het scherm om te kijken wat er in staat. Kortom, ga debuggen.

Acties:
  • 0 Henk 'm!

  • daank
  • Registratie: Januari 2001
  • Laatst online: 12:56

daank

Internet _H3nk

Topicstarter
Noork schreef op donderdag 29 januari 2009 @ 15:54:
NULL is niks toch? Wat is de query, en echo deze ook eens naar het scherm om te kijken wat er in staat. Kortom, ga debuggen.
zie reactie hierboven ;)

het is overigens wel zo dat deze query in microsoft SQL Server Management studio netjes werkt.
Ik denk dat die tool waarschijnlijk ook wat dingen pre-format ofzo..

[ Voor 24% gewijzigd door daank op 29-01-2009 15:59 . Reden: vergeten info ]


Acties:
  • 0 Henk 'm!

  • Luqq
  • Registratie: Juni 2005
  • Laatst online: 19-09 14:23
daank schreef op donderdag 29 januari 2009 @ 15:53:
[...]

Er zijn andere applicaties die vanuit diezelfde database data gaan halen, die applicaties zijn geschreven in .net. een datetime object is dan beter.
Tevens vind ik dit verder niet een goede oplossing
Een timestamp is overal hetzelfde, namelijk de tijd sinds 1 januari 1970 00:00 in die betreffende tijdzone. Hiermee elimineer je dus het tijdzone probleem. Je kan toch wel een timestamp omrekenen naar een datetime object?

Acties:
  • 0 Henk 'm!

  • daank
  • Registratie: Januari 2001
  • Laatst online: 12:56

daank

Internet _H3nk

Topicstarter
Luqq schreef op donderdag 29 januari 2009 @ 16:01:
[...]


Een timestamp is overal hetzelfde, namelijk de tijd sinds 1 januari 1970 00:00 in die betreffende tijdzone. Hiermee elimineer je dus het tijdzone probleem. Je kan toch wel een timestamp omrekenen naar een datetime object?
tuurlijk kan dat, alleen is het in .NET niet regulier.
Ik moet de structuur van de database zo houden dat er in de toekomst mensen makkelijk voor kunnen programmeren.
+ kan je makkelijker querien naar de database met een datetime object als column, anders moet je eerst een functie laten uitrekenen hoeveel seconden een datetime is.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Gebruik de ISO notatie, dat gaat altijd goed ("yyyymmdd hh:nn:ss" ofzo) ;) Of better yet: Parametrized Queries

[ Voor 5% gewijzigd door RobIII op 29-01-2009 16:23 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • daank
  • Registratie: Januari 2001
  • Laatst online: 12:56

daank

Internet _H3nk

Topicstarter
nog even een stukje feedback.
De ISO notatie werkt netjes zoals het hoort.

Bedankt voor alle reacties en hulp :)
Pagina: 1