Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: [MSSQL] Confronto date

  1. #1

    [SQL] Confronto date

    Premetto che ho cercato nel forum risposta alla mia domanda, ma le varie prove non hanno dato esito positivo.

    ho un db di un listino composto da diverse tabelle. in questo caso ho una tabella_prodotti con le specifiche degli articoli, e una tabella_listini che contiene i prezzi. in tabella_listini per ogni prodotto ci possono essere diversi prezzi che hanno particolari valità in base al periodo.
    Lo stesso prodotto oggi può costare 100 o 200 in un particolare periodo.

    avrei bisogno di estrare i dati validi in data di oggi (giorno x giorno) e relativamente alla stessa data quello con il prezzo più basso!

    qualcuno mi da una spintarella nella direzione giusta?

    io ho provato intanto una selezione di date con:
    SELECT *
    FROM Listini
    WHERE data_fine > CURDATE()

    risposta:
    "La conversione del tipo di dati da char a datetime ha generato un valore di tipo datetime non compreso nell'intervallo dei valori consentiti."

  2. #2
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Prima di tutto: che database stai usando (come da regolamento) ? SQL non vuol dire niente...


    Quel "data_fine" di che tipo di dato è ? datetime, time, varchar, etc...

  3. #3
    chiedo scusa... uso SQL Server
    data_fine è un datetime

    Grazie!

  4. #4
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Non capisco innanzitutto quel CURDATE() che so esserci in MySQL ma non in SQL Server

    Tipicamente poi errori simili (conversione di dati da char, etc) dipendono dalle impostazioni dell'utente che esegue la query

    Con che utente ti colleghi al database ? qual'è la lingua impostata per questo utente (è un'impostazione di SQL Server, non di Windows)

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244

    Re: [SQL] Confronto date

    Originariamente inviato da bertimusica
    avrei bisogno di estrare i dati validi in data di oggi (giorno x giorno) e relativamente alla stessa data quello con il prezzo più basso!

    qualcuno mi da una spintarella nella direzione giusta?

    io ho provato intanto una selezione di date con:
    SELECT *
    FROM Listini
    WHERE data_fine > CURDATE()

    risposta:
    "La conversione del tipo di dati da char a datetime ha generato un valore di tipo datetime non compreso nell'intervallo dei valori consentiti."
    CURDATE() cosa sarebbe?
    Non mi pare sia valida in SQL Server, magari con MySQL...

    Con SQL Server puoi usare una di queste:
    - GETDATE()
    - {fn Now()}
    - CURRENT_TIMESTAMP



  6. #6
    ecco perchè non funziona!! vedi? ignoranza mia!

    mi collego al db come amministratore (sa)
    la lingua impostata onestamente non la so.

    purtroppo do per scontate delle cose che forse è meglio chiarire.

    ci sono due pc collegati in rete, entrambi con windows XP pro. uno fa da "server" e c'è installato SQL server 2008.

    l'altro pc è la mia postazione dove cerco di pescare questi dati. uso VB, ma prima di utilizzare questi dati volevo, tramite SQL Server Management Studio, ottenere i dati che mi servivano per chiarirmi le idee su come procedere.

    Non sono un programmatore (anche perchè se lo fossi... sarei un pessimo programmatore visto che non so fare queste cose ), cerco solo di risolvere una questione per gusto personale.

    Spero che questo possa chiarire la situazione, e perdonatemi se mancano info tecniche...
    Come posso ottenere info riguardo alla lingua dell'utente?

  7. #7
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Non ho in questo momento un SQL 2008 ma credo sia quasi identico al 2005 che ho aperto...


    Security - logins - selezioni "sa" - tasto destro - properties e nella parte bassa c'è "Default language"; tipicamente (per il problema con le date) la si cambia da "english" e la si mette "italian"

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Guarda che non devi giustificarti.
    Se una cosa non si sa, non si sa. Nessuno nasce 'imparato' ...

    Un Forum serve a questo, giusto?

    Magari, spesso, la soluzione la si trova prima sulla Guida (BOL) che su un Forum, ammesso che si sappia cosa cercare...

    Riguardo alla lingua dell'utente, è un'altro discorso per il quale devi aprire una nuova discussione. Prima di farlo però, ti consiglio di cercare sul BOL di SQL Server 2008.
    Anche perchè esistono più impostazioni sulla lingua.


  9. #9
    ok..ok.. grazie a tutti per l'aiuto.

    per la lingua ho trovato premendo a caso (bastava fare pulsante dx sulla connessione e poi proprietà)... è impostata su italiano.

    per la query il suggerimento di gibra ha risolto l'aspetto della selezione delle date valide in questo modo.

    SELECT * FROM Listini WHERE data_inizio < getdate() and data_fine > getdate()


    ora che ho ad esempio i 5 prezzi (dello stesso prodotto, selezionati per data) ottenere quello più basso? devo aprire un altra discussione?

  10. #10
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Ovviamente sì, dato che il prezzo più basso niente ha a che vedere con il Confronto date.



    P.S. Ma non hai letto il Regolamento?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.