我想拆分数据库中的 Birthdate 列..
Returned String from database : dd/mm/yyyy
我想在单独的字符串上获取每个值,
date = dd
month = mm
year = yyyy
我尝试过这样的事情..但这并不总是有效,因为某些日期只有一个字符?前任。2012 年 4 月 5 日
Birthdate.ToString.Substring(0, 2)
我想拆分数据库中的 Birthdate 列..
Returned String from database : dd/mm/yyyy
我想在单独的字符串上获取每个值,
date = dd
month = mm
year = yyyy
我尝试过这样的事情..但这并不总是有效,因为某些日期只有一个字符?前任。2012 年 4 月 5 日
Birthdate.ToString.Substring(0, 2)
或者,您能否不将从数据库返回的字符串转换为日期?您随后可以使用Date.Month
等访问每个组件部分。
Dim mydate As Date = Convert.ToDateTime("21/05/2012")
Console.WriteLine(mydate.Day)
Console.WriteLine(mydate.Month)
Console.WriteLine(mydate.Year)
(a) 你不应该使用像4/5/2012
4 月 5 日还是 5 月 4 日这样的区域格式?如果我不知道,SQL Server 怎么知道?
(b)如果将任何内容存储为日期,您真的不需要拆分任何内容(您将日期存储为日期,而不是字符串,对吧)?因此,如果您想从 SQL Server 执行此操作,您可以说:
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;
结果:
day month year
--- ----- ----
4 5 2012
4 5 2012
如果您的专栏是,DATE
那么您应该只能说:
SELECT
date_column,
[day] = DAY(date_column),
[month] = MONTH(date_column),
[year] = YEAR(date_column)
FROM
dbo.tablename;