che sto sostituendo il mio codice C# per motivi di prestazioni con una query SQL:Come posso selezionare un datetime come ggMMyy, quindi un anno a due cifre?
CreatedAt.ToString("ddMMyy", System.Globalization.CultureInfo.InvariantCulture)
restituisce la creazione-date 140115
(per oggi). Abbastanza semplice in C#, ma come faccio a ottenere questo in T-SQL?
ho provato:
REPLACE(CONVERT(CHAR(10), ChargeArrival.CreatedAt, 103), '/', '')
che è quasi in modo corretto, ma l'anno ha quattro cifre invece di due, in modo da 14012015
invece di 140115
.
Io non sono convinto che questo si esibiranno meglio . Anche la conversione del tipo di dati non è gratuita in SQL Server. –
@AaronBertrand: non è la conversione della data che fa parte dell'ottimizzazione ma la sostituzione di LINQ-To-SQL in cui l'oggetto contiene campi complessi che vengono inizializzati da altre query del database. Ora sto usando una vista che contiene tutti i campi rilevanti. Ci sono voluti 20 secondi per selezionare 100 righe (caricare 100 oggetti), ora solo una frazione di secondo. –
Ok, non era chiaro, sembrava che il problema di efficienza stava semplicemente applicando la formattazione in C#. –