Campo data/ora in query

di Anonimizzato4671 il
6 risposte
Ciao a tutti,
qualcuno mi spiega come funzionano i tipi di dato data/ora?
Ho una tabella "proiezione" in cui sono presenti i campi idfilm, idsala, data e orainizio
data è di tipo data/ora formato data in cifre
orainizio è di tipo data/ora Formato: Ora estesa, Maschera di input: 00:00:00;0;_

Faccio una query e voglio selezionare i record con orainizio 21:00:00.
In visualizzazione struttura inserisco 21:00:00 come criterio.
perchè nell'sql mi fa vedere orainizio=#12/30/1899 21:00:0#

è possibile memorizzare solo l'ora senza quella data del 1899?
Spero di essere stato chiaro
Grazie

6 Risposte

  • Io non avrei separato i campi Data e OraInizio, ma uno solo TimeInizio con il formato completo data+ora.
    Per estrarre solo l'Anno, solo il Mese, solo il Giorno, solo l'Ora ci sono tutte le relative funzioni di "estrazione".
    Leggi qui
    https://support.office.com/it-it/article/scegliere-la-giusta-funzione-di-data-377e73f4-91df-44d8-a386-a3c43f0ac99e
    https://support.office.com/it-it/article/esempi-dell-uso-di-date-come-criteri-in-query-di-access-aea83b3b-46eb-43dd-8689-5fc961f21762
    https://support.microsoft.com/it-it/help/210604/functions-for-calculating-and-for-displaying-date-time-values-in-acces
  • Grazie Osvaldo,
    terrò presente le tue indicazioni, ma nell'esercizio che mi è stato assegnato data e orainizio sono due campi separati.
    Mi potete comunque spiegare perchè l'sql mi fa vedere orainizio=#12/30/1899 21:00:0#?

    Il mio problema è che devo fare una query in VBA dove con una inputBox prendo la data e un'altra inputBox l'orario e poi eseguo la query
    
    d=inputbox("Dammi data")
    o=inputBox("Dammi ora")
    q="select idFilm from proiezione where data='" & format(d ,"mm/dd/yyyy") & "' AND orainizio='" & format(o,"hh:mm:ss") & "'"
    
    e non funziona credo per il problema di cui sopra
    Grazie
  • antcru ha scritto:


    devo fare una query in VBA dove con una inputBox prendo la data e un'altra inputBox l'orario
    Le query si fanno in SQL (se lo conosci), altrimenti in Visualizzazione struttura. Non sono bravissimo con tutte le combinazioni dei formati data e ora. Ti direi soltanto di creare nella query 2 parametri da scrivere nella riga Criterio (Visualizzazione struttura query) in corrispondenza dei campi Data e Ora:
    [Digita la Data]
    [Digita l'Ora]
    Quando esegui la query apparirà una prima inputbox con scritto "Ditiga la Data", poi una seconda inputbox con scritto "Digita l'Ora. Quando digiti abbi cura di scrivere esattamente Data e Ora nei formati "predefiniti"/"previsti" ossia per intero:
    05/07/2018 e non 5/7/2018 e nemmeno 5/7/18
    22:30 o 22:30:00
  • OsvaldoLaviosa ha scritto:


    Le query si fanno in SQL (se lo conosci), altrimenti in Visualizzazione struttura.
    Si so farle in SQL e anche in Visualizzazione struttura, ma io devo farla da VBA.
    Inoltre volevo capire perchè inseriva quel 12/30/1899 e come evitarlo.
    Aspetto se qualcuno ne sa più di noi, grazie
  • antcru ha scritto:


    Inoltre volevo capire perché inseriva quel 12/30/1899 e come evitarlo.
    In merito ai valori forniti dal campo data ed ora si può leggere la documentazione a supporto:

    SupportMicrosoft ha scritto:


    I valori validi per la data vanno da -657,434 (1° gennaio 100 d.C.) a 2,958,465 (31 dicembre 9999 d.C.). Il valore di data 0 rappresenta il 30 dicembre 1899. Access memorizza le date precedenti al 30 dicembre 1899 come numeri negativi.

    I valori validi per l'ora vanno da .0 (00.00.00) a .99999 (23.59.59). Il valore numerico rappresenta una frazione di un giorno. È possibile convertire il valore numerico in ore, minuti e secondi moltiplicando il valore numerico per 24.
    https://support.microsoft.com/it-it/help/210276/how-to-store-calculate-and-compare-date-time-data-in-microsoft-access
Devi accedere o registrarti per scrivere nel forum
6 risposte