(a) vous ne devriez pas utiliser des formats régionaux comme 4/5/2012
- est que 5ème Avril ou le 4 mai? Si je ne peux pas dire, comment peut SQL Server? (B) vous n'avez vraiment pas besoin de diviser quelque chose s'il est stocké sous forme de date (vous stockez vos dates sous forme de dates, et non de chaînes, à droite)? Donc, si vous voulez le faire à partir de SQL Server, vous pouvez dire:
SELECT
[day] = DAY(date_column),
[month] = MONTH(date_column),
[year] = YEAR(date_column)
FROM
(
SELECT CONVERT(DATETIME, date_column, 103)
FROM
(
SELECT '04/05/2012'
UNION ALL SELECT '4/5/2012'
) AS x(date_column)
) AS y;
Résultat:
day month year
--- ----- ----
4 5 2012
4 5 2012
Si votre colonne est DATE
alors vous devriez juste pouvoir dire:
SELECT
date_column,
[day] = DAY(date_column),
[month] = MONTH(date_column),
[year] = YEAR(date_column)
FROM
dbo.tablename;
Est-ce que 'Birthdate' a' String'? Si c'est un 'String', n'appelez pas' ToString'. Si c'est un 'Date', utilisez plutôt sa propriété' Day'! – Ryan