Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Leggere più record
mercoledì 25 ottobre 2006 - 09.02
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Anser
Profilo
| Junior Member
51
messaggi | Data Invio:
mer 25 ott 2006 - 09:02
Ciao ragazzi,
uso Visual Basic.NET 2005 su Windows Server 2003 con SQL Server 2000 SP4.
Ho un Database SQL nel quale c'e' il campo "date" e il campo "Pos".
Non essendo il campo "date" una chiave primaria ho la possibilità di averne più "Pos" per lo stesso giorno.
Volevo sapere questo.. con un comando SQL è possibile leggere tutte le "Pos" (caricandole ad esempio su un array) per un preciso giorno?
La struttura della stringa attuale è:
"SELECT date FROM table1 WHERE (date = ' " & MiaData & " ');"
Però questa mi estrapola solo l'ultima "Pos" di quel giorno..
Spero mi possiate dare una mano
Grazie in anticipo
Tms TEAM
us01739
Profilo
| Expert
641
messaggi | Data Invio:
mer 25 ott 2006 - 09:13
La data è di tipo date o varchar?
Riportaci un esempio di un valore data.
Puoi comunque provare inserendo un where del tipo...
WHERE (Data BETWEEN '10/20/2006' AND '10/24/2006')
Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------
Anser
Profilo
| Junior Member
51
messaggi | Data Invio:
mer 25 ott 2006 - 09:26
Ciao,
allora la data è di tipo "datetime" ed è memorizzata come 25/10/2006 .. però a me interessa estrapolare tutti i record di UN giorno preciso..
Tms TEAM
us01739
Profilo
| Expert
641
messaggi | Data Invio:
mer 25 ott 2006 - 09:33
Mi sono accorto solo ora della select sbagliata:
>"SELECT date FROM table1 WHERE (date = ' " & MiaData & " ');"
>Però questa mi estrapola solo l'ultima "Pos" di quel giorno..
Se ti serve il valore di POS, non devi scrivere select date, ma select pos o al massimo select *
Prova così:"SELECT * FROM table1 WHERE (date = ' " & MiaData & " ');"
Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------
Anser
Profilo
| Junior Member
51
messaggi | Data Invio:
mer 25 ott 2006 - 09:49
Si hai ragione .. comunque ho provato sia con "SELECT Pos...." che "SELECT * ... " ma mi estrapola sempre l'ultimo valore.. ecco un esempio del database
date Pos
23/10/2006 3
23/10/2006 15
23/10/2006 9
22/10/2006 5
Questo è il codice che uso per la lettura dei dati:
dim a as string
dim b as string
Dim leggi As OleDb.OleDbDataReader
leggi = cmd1.ExecuteReader
leggi.Read()
a = leggi(0) -> dopo questa acquisizione a=3 -> OK
b = leggi(1) -> dopo questa acquisizione Errore (Index was outside the bounds of array)
mentre vorrei leggere 15 ...
pensi sia possibile ?
Tms TEAM
us01739
Profilo
| Expert
641
messaggi | Data Invio:
mer 25 ott 2006 - 09:52
Posta anche la parte cmd1
Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 25 ott 2006 - 09:54
>allora la data è di tipo "datetime" ed è memorizzata come 25/10/2006
No, le date sono memorizzate come coppie di interi (per il data type datetime sono 2 coppie di 4 bytes ciascuna).
Quello che tu vedi è una formattazione in base alla lingua associata alla login con la quale ti sei connesso all'istanza.
>.. però a me interessa estrapolare tutti i record di UN giorno preciso..
Ora, dato che il data type datatime memorizza sia l'informazione data che quella oraria con una accuratezza di 3,33ms, se vuoi recuperare i dati di un giorno dovrai considerare l'intervallo compreso tra la mezzanotte di un dato giorno e la fine del giorno stesso.
Supponendo che la data in questione sia il 25 ottobre 2006 la tua query risulterà simile a:
SELECT col1,..., coln
FROM tabella
WHERE colData BETWEEN '20061025' AND '20061025 23:59:59.997';
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Anser
Profilo
| Junior Member
51
messaggi | Data Invio:
mer 25 ott 2006 - 10:05
Dim myconn As String = "Provider=SQLOLEDB;Server=localhost;Database=DB-TEST;Uid=sa;Pwd=prova;" 'Stringa Connessione Database SQL
Dim cnn As New OleDb.OleDbConnection
Dim cmd1 As New OleDb.OleDbCommand
cnn.Open()
cmd1.Connection = cnn
Dim dat As String = "20061023"
cmd1.CommandText = "SELECT Pos FROM Table1 WHERE (date= '" & dat & "');"
Tms TEAM
us01739
Profilo
| Expert
641
messaggi | Data Invio:
mer 25 ott 2006 - 10:07
Sono convinto che se segui i consigli di Lorenzo risolvi il problema ;-)
Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------
Anser
Profilo
| Junior Member
51
messaggi | Data Invio:
mer 25 ott 2006 - 10:10
Ciao,
però la colonna che devo estrapolare è una.. cioè si chiama "Pos". Quello che a me interessa è estrapolare più righe di quella colonna (corrispondente poi alla stesso giorno) lo schema sotto rappresenta i dati di cui ho bisogno.
date Pos
23/10/2006 3
23/10/2006 15
23/10/2006 9
22/10/2006 5
E' possibile con un solo comando estrapolare i valori 3, 15 e 9 dello stesso giorno (23/10/2006) posti su righe differenti ?
Tms TEAM
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 25 ott 2006 - 10:12
>E' possibile con un solo comando estrapolare i valori 3, 15 e
>9 dello stesso giorno (23/10/2006) posti su righe differenti
>?
Leggi il mio post e otterrai esattamente quel risultato.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Anser
Profilo
| Junior Member
51
messaggi | Data Invio:
mer 25 ott 2006 - 10:52
Già... basta leggere !!
RISOLTO.. GRAZIE MILLE !!
Tms TEAM
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !