-1

我想拆分数据库中的 Birthdate 列..

Returned String from database : dd/mm/yyyy

我想在单独的字符串上获取每个值,

date = dd
month = mm
year = yyyy

我尝试过这样的事情..但这并不总是有效,因为某些日期只有一个字符?前任。2012 年 4 月 5 日

Birthdate.ToString.Substring(0, 2)
4

2 回答 2

2

或者,您能否不将从数据库返回的字符串转换为日期?您随后可以使用Date.Month等访问每个组件部分。

Dim mydate As Date = Convert.ToDateTime("21/05/2012")

Console.WriteLine(mydate.Day)
Console.WriteLine(mydate.Month)

Console.WriteLine(mydate.Year)
于 2013-01-19T18:33:04.863 回答
1

(a) 你不应该使用像4/5/20124 月 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;
于 2013-01-19T18:34:06.840 回答