Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 27 odgovora
  • 12.826 pregleda

Najnovija ↓

Konverzija datuma 12.11.2010. u 10:35 · pre 194 meseca #1
Kako da pretvorim datum formata dd.mm.yyyy u format mm/dd/yyyy ?
Raspored dana i mjeseca sam riješio tako da dd.mm.yyyy datum pretvorim u string
i funkcijom dobijem string mm/dd/yyyy , ali kad string pretvaram u datum izbaci mi datum formata mm.dd.yyyy,
a ja želim datum formata mm/dd/yyyy
Re: Konverzija datuma 12.11.2010. u 11:41 · pre 194 meseca #2
Probaj da iskoristiš ovaj primer

Public Function obrniDatum(ByVal datum As String) As String
On Error GoTo greska
Dim dan As String
Dim mesec As String
Dim godina As String

Dim datumdate As Date
datumdate = CDate(datum)
dan = Day(datumdate)
mesec = Month(datumdate)
godina = Year(datumdate)

Dim noviDatum As String
noviDatum = mesec & "." & dan & "." & godina

obrniDatum = noviDatum
GoTo kraj
greska: MsgBox Err.Description
kraj:
End Function
Re: Konverzija datuma 12.11.2010. u 12:44 · pre 194 meseca #3
Nisam te bas najbolje razumio, a vjerujem da ni ti ne bi razumio kad bi procitao jos jednom :-), salim se

Evo rjesenje:

Code:
Private Sub Command1_Click()
Dim STRDatum As String
Dim DATEDatum As Date

STRDatum = "22.05.2010"

STRDatum = Replace(STRDatum, ".", "/")

DATEDatum = Format(STRDatum, "mm/dd/yyyy")

MsgBox DATEDatum
End Sub
Re: Konverzija datuma 12.11.2010. u 13:20 · pre 194 meseca #4
* pskibola
Zasto jednostavno ne promenis nacin prikazivanja datuma u Contol Panel\Regional and Language Options, podesis Date separator na: / i zavrsis posao!!!

Re: Konverzija datuma 12.11.2010. u 14:32 · pre 194 meseca #5
Vucho, probao sam, ali nisam riješio problem, naime u bazi imam polje datum u formatu 24.6.2010
Kad filtriram sql upit po datumu u access bazi moraš datum pisati u formatu 6/24/2010
npr. SELECT ........ WHERE DATUM.DATUM=#6/24/2010# ovo filtriranje radi, ali sql ne prihvača datum 24.6.2010
znači moram u kodu promjeniti format datuma 24.6.2010 konvertirati u 6/24/2010
Re: Konverzija datuma 12.11.2010. u 15:01 · pre 194 meseca #6
Pa ne razumijem u cemu je onda problem uradis ovako...

Code:
Dim STRDatum As String
Dim DATEDatum As Date

STRDatum = TvojePoljeDatumaIzBaze.Value ' Ili text zavisi kako  dohvacas datum iz polja u bazi

STRDatum = Replace(STRDatum, ".", "/")

DATEDatum = Format(STRDatum, "mm/dd/yyyy")

 SELECT ........ WHERE DATUM.DATUM="#" & DATEDatum & "#"


* posto sam ponovo procitao mislim da razumijem sad problem...pa u bazi ti je datum 24.6.2010 to je u stvari text???

jesi probao upit vrsiti ovako:
Code:
SELECT ........ WHERE DATUM.DATUM='24.6.2010' 
Re: Konverzija datuma 12.11.2010. u 15:37 · pre 194 meseca #7
Pazi u bazi mi je 6.11.2010 datum, a ne tekst. sql upit radi samo sa datumom ...WHERE ((datumnarudbe.datumnarudbe)=#11/6/2010#);"
i sada ja datum iz baze pretvorim u string
Dim d As Date
Dim d3 As Date

d = DBCombo1.Text
Dim NewD As String
NewD = Format(d, "ddmmyyyy")
tada pozovem funkciju koja string pretvori u format 11/6/2010

Function Preslozi(ByVal text1 As String) As String
Preslozi = Mid(text1, 4, 2) & "/" & Left(text1, 2) & "/" & Right(text1, 4)
End Function

i ovo radi, ali sad ovaj dobiveni string moram pretvoriti u datum i kod pretvaranja u datum

d3=Format(Preslozi(NewD), "mm/dd/yyyy")

d3 umjesto da bude 11/6/2010 on vrati u 11.6.2010 što ne prihvaća SQL

SELECT ........ WHERE DATUM.DATUM='24.6.2010' ne radi
pijavljuje grešku Run-time Error 3464:
Data type mismatch in criteria expression
Re: Konverzija datuma 12.11.2010. u 15:41 · pre 194 meseca #8
Problem je u pretvaranju stringa u datum
jer vb6 dobiveni string 11/6/2010 vrati u datum 11.6.2010
a meni treba datum 11/6/2010 da bi radio sql upit
Re: Konverzija datuma 12.11.2010. u 16:42 · pre 194 meseca #10
vuchko Posat ću ti mailom. koji ti je e-mail ?
Re: Konverzija datuma 13.11.2010. u 07:59 · pre 194 meseca #12
Riješen problem. VB6 u SQL quuery prihvaća string, ali ga moraš staviti u # string#
da bi string prepoznao kao datum. Format stringa mora biti US datum 03/23/2010
Re: Konverzija datuma 15.11.2010. u 00:53 · pre 194 meseca #13
strDatum = "#" & Format(datum, "mm-dd-yy") & "#"
Potpis
zxz
Re: Konverzija datuma 15.11.2010. u 20:56 · pre 194 meseca #14
Citat:
Riješen problem. VB6 u SQL quuery prihvaća string, ali ga moraš staviti u # string#
da bi string prepoznao kao datum. Format stringa mora biti US datum 03/23/2010


Samo bi' te ispravio u jednoj stvari... mislim da se string stavlja izmedju znakova '????' tako imamo npr.

Code:
SELECT * FROM Tabela1 where ime='Marko';


a kad uporedjujes datume onda stavljas datum izmedju znakova #03/23/2010# tako imamo npr.

Code:
SELECT * FROM Tabela1 where Datum = #03/23/2010#;


Ono zapravo u tvom programu jeste string ali ti ne prosledjujes SQl-u string nego vrijednost datuma.

* Evo jedan mali primjer, u svojoj bazi promjeni vrijednost polja Datum iz Date/Time u Text i tada ce ti ovaj kod raditi posao:

Code:
SELECT * FROM Tabela1 where Datum = '03/23/2010';


Ako sam ja sad negdje pogrijesio ispravite me!

Pozdrav!!!
Re: Konverzija datuma 03.04.2013. u 21:11 · pre 165 meseci
izmenjeno 1 put, poslednji put miki987 03.04.2013. u 22:05
  1. miki98703.04.2013. u 22:05zapis iz teksta poruke
#15
da osvezimo staru temu :D, totalna konfuzija sta treba a sta ne treba, molim za pomoc
imam sledecu situaciju
u bazi je polje DATUM = date/time
u cp je podesen short format datuma "d.m.yyyy"
listview cita format datuma kao "d.m.yyyy"

za filtriranje koristim sledece

Code:

Dim start1 As String
Dim start2 As String

start1 = Format(DTPicker1, "d/M/yyyy")
start2 = Format(DTPicker2, "d/M/yyyy ")

SQL = "SELECT * FROM ulaz_repromaterijala WHERE datum >='" & start1 & "' AND datum <='" & start2 & "' ORDER BY redni_broj DESC;"


gde gresim???



ukoliko pokusam sa ovim, pretraga se filtrira ali je problem sto ne daje tacne rezultate npr.

Code:
SQL = "SELECT * FROM ulaz_repromaterijala WHERE datum >=# " & start1 & " # AND datum <=# " & start2 & " # ORDER BY redni_broj DESC;"


ukoliko stavim datum od 1.4.2013 do 11.4.2013 prikazuje mi sve rezultate ukljucujuci i datum 30.4.2013
ukoliko stavim datum od 1.4.2013 do 9.4.2013 prikazuje regularno
Re: Konverzija datuma 04.04.2013. u 00:49 · pre 165 meseci #16

Code:

Format(DTPicker2, "mm-dd-yyyy ")
Potpis
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
Re: Konverzija datuma 04.04.2013. u 09:09 · pre 165 meseci #17
Pozdrav srtarom društvu sa VB foruma! Nismo se dugo čuli :-).

Mislim da ti je razlog objašnjen u mom postu od 15.11.2010., razlog greške je podešavanje polja u u bazi (sql u formatu date/time radi sa ## a za text koristis ' ' )

Trenutno nemam pristup svojim starim kodovima da bih pokušao testirati neko rješenje.

Imao sam sličan problem sa jednom bazom, spajao sam VB i access, čini mi se. Sjećam se da je sql bio toliko uporan da mu se datum zadaje u formatu mm/dd/yyyy i da sam na kraju i ja popustio :-). Čini mi se da je tako i u ovom tvom slučaju:

Citat:
ukoliko stavim datum od 1.4.2013 do 11.4.2013 prikazuje mi sve rezultate ukljucujuci i datum 30.4.2013
ukoliko stavim datum od 1.4.2013 do 9.4.2013 prikazuje regularno


U prvom slučaju ti tražiš raspon od 4. Januara 2013 do 4. Novembra 2013.
U drugom opet tražiš raspon od 4. Januara 2013 do 4. Septebra 2013. Mislim ne tražiš ti to nego SQL tako razumije.

Takodje mislim da imas malo zapisa u bazi pa nemožeš osjetiti razliku pri upitima.

Pokušaj tražiti da ti prikaže od npr. 28.04.2013 do 30.04.2013. (vjerujem da će izbaciti grešku), a ako pokušaš sa 04/28/2013 do 04/30/2013 mislim da će biti OK.

Molim te javi šta si napravio.
Re: Konverzija datuma 04.04.2013. u 18:15 · pre 165 meseci #18
evo ovako je lakse, pa da nadjemo resenje
posto imam dovoljno vremena i zivaca prepravicu ceo program, sve opcije su moguce, dakle dajte mi predlog sta i kako da postavim

u ovom primeru datum u bazi je Text, i korisim ' ', medjutim nije ispravna pretraga
Re: Konverzija datuma 07.04.2013. u 04:15 · pre 165 meseci
izmenjeno 1 put, poslednji put loto17 07.04.2013. u 04:39
  1. loto1707.04.2013. u 04:39zapis iz teksta poruke
#20
Citat:
miki987: ima li pomoci :))))


Ima !!!

1. U Control Panel \ Regional options treba da stoji : English(United Kingdom)
2. Control panel\Customize Regional Options\ Short Date format\ podesiti na : dd.mm.yy
3. Arhivu OBAVEZNO raspakovati u C:\project1





Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme