NN vi diro mai chi sono in realta,
tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me
ah ok, ho capito. Quindi se il campo é già una data allora ti basta un solo "convert" (ecco perché la tua query...) quindi se la data é già di tipo DateTime:
Questo dovrebbe convertirti la data sempre nel formato USA (110, quindi 09-30-2022). Ovviamente da provare.codice:convert(varchar,MyDateTime,110)
Non avevo capito io che la tua data in stringa era puramente indicativa, ma che in realtà la data era già datetime. L'unico errore quindi sarebbe lo style 110 vs 103. Che poi anche Uranio lo aveva detto...
Infatti provando sul loro server mi funziona perfettamente
nel mio sql server con data italiana...ecco errore
Messaggio 242, livello 16, stato 3, riga 2codice:AND CONVERT( datetime,'09-30-2022' ,103)
La conversione del tipo di dati da char a datetime ha generato un valore di tipo datetime non compreso nell'intervallo dei valori consentiti.
Ora di completamento: 2022-09-12T08:54:21.4980953+02:00
NN vi diro mai chi sono in realta,
tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me
Anche oggi avevo scritto un accurata risposta che é andata persa cercando di vedere l'anteprima...
In sostanza dicevo che non si capisce bene che stai facendo e perché continui ad usare 103 (quindi data italiano con la barra tipo 30/09/2022) ma nel convert mostri la stringa in formato 105 (30-09-2022).
Nel convert devi usare lo style riferito all'input, quindi se metti 30-09-2022 devi usare il 105. Poi se la data nel campo del db è di tipo varchar perché la converti in tipo data?
Quella query scritta sopra é errata, il formato è chiaramente 105, non 103, inoltre facendo come hai mostrato si presuppone allora che il tipo del campo del database é di tipo date/datetime non varchar. Nel caso invece sia varchar nel database, in quale formato salvi la stringa? tipo 105 (30-09-2022); 103 (30/09/2022) oppure 110 (09-30-2022)?
Come ottieni la stringa in input da NET? la ottieni tramite l'immissione manuale in una textbox oppure usi un datetimepicker? o ancora la memorizzi scrivendo a mano nel codice 30-09-2022? oppure fai un ToString() su un tipo datetime?