我做的是c#应用程序,有出生年月字段,客户让这个字段为字符型,现在给任一个时间如2007年6月6日,怎么求年龄段呢,如31-35。
解决方案 »
- C#的一个模拟登陆的代码 实在不知道哪里错了 求大神解答
- ToolStripMenuItem如何承载其它控件
- 怎么改写DataGridView中某一列的值
- C#与C++如何实现通信?
- 正则表达式匹配
- 写入app.config的几个问题?
- 在一个函数里出现了这句using (CreateDevice frm = new CreateDevice())是什么意思?
- 刚学WinForm 求C# (类似)进销存学习代码 给各位大侠请安了
- 数据集(动态库)与垃圾回收问题?求高人指点!
- .net 中 显示的 如果使用tt hh:mm:ss 时间格式 0点钟 = 上午 12:00:00 秒,能不能改为上午00:00:00
- 简单的字符串截取,大家帮一下啦.
- Java改写为C#的问题,请高手帮忙
{
//SQL文を作成する。
StringBuilder builder = new StringBuilder(); builder.Append(" SELECT ");
builder.Append(" DATEDIFF(yy,SEIYMD,getdate()) AS AGE");
builder.Append(" FROM");
builder.Append(" M_STAFF");
builder.Append(" WHERE 0=0");
builder.Append(" AND KAISHACD = '" + loginInfo.Kaishacd + "'");
builder.Append(" AND STAFFCD = '" + vo.Staffcd + "'");
builder.Append(" AND DELFLG = '0'"); //SqlStatementを生成する。
SqlStatement sqlStatement = new SqlStatement(builder.ToString(), CommandType.Text); String sqlStr = sqlStatement.ToString(); //検索結果を取得する。
IDataReader dataReader = DBConnector.ExecuteQuery(sqlStatement, context); string age = "";
if (dataReader.Read())
{
age = Convert.ToString(dataReader["AGE"]);
} dataReader.Close(); return age;
}
DateTime dt;
DateTime.TryParse(st, out dt);
DateTime dt1 = new DateTime(dt.Year - 31, dt.Month, dt.Day);是否这个意思?
2,DateTime d1;
DateTime d2;
//赋值
TimeSpan t = d2-d1; int days = (int)t.TotalDays;
int year = days/365;
select csny from bb_gbdjb
1963.05
1968.01
1962.01
1962.10
1960.08
如果给当年时间,怎么求年龄段?
set QUOTED_IDENTIFIER ON
gocreate FUNCTION [dbo].[AGE] (@startdate datetime,@enddate datetime)
RETURNS int
WITH EXECUTE AS CALLER
AS
BEGIN
DECLARE @addday int
declare @year int
declare @age int
SET @addday=0
set @year=datepart(year,@startdate)
while (@year<=datepart(year,@enddate))
begin
if (@year=datepart(year,@enddate) and datepart(month,@enddate)>=3)
begin
if ((@year%4=0 and @year%100<>0) or (@year%400=0))
set @addday=@addday+1
end
else
if (((@year%4=0 and @year%100<>0) or (@year%400=0)) and @year<>datepart(year,@enddate))
set @addday=@addday+1
set @year=@year+1
end
set @age=(datediff(day,@startdate,@enddate)-@addday)/365
RETURN(@age)
END
服务器: 消息 156,级别 15,状态 1,过程 AGE,行 4
在关键字 'EXECUTE' 附近有语法错误。
string st1 = "2007-6-6";
string st2 = "1963-5-1";
DateTime dt1,dt2;
DateTime.TryParse(st1, out dt1);
DateTime.TryParse(st2, out dt2
int iarrange = dt1.Year - dt2.Year;sql实现如下:
SELECT YEAR(CONVERT(DATETIME, '2007-6-6', 102)) - YEAR(CONVERT(DATETIME,
csny, 102)) AS arrange
FROM bb_gbdjb
where id =1
set @cDate = CONVERT(DATETIME, @cDate 102)SELECT YEAR(CONVERT(DATETIME, @cDate, 102)) - YEAR(CONVERT(DATETIME,
csny, 102)) AS arrange
FROM bb_gbdjb
WHERE (YEAR(CONVERT(DATETIME, @cDate, 102)) - YEAR(CONVERT(DATETIME,
csny, 102)) < 35) AND (YEAR(CONVERT(DATETIME, @cDate, 102))
- YEAR(CONVERT(DATETIME, csny, 102)) > 30)
set @cDate = CONVERT(DATETIME, @cDate 102)SELECT YEAR(@cDate)- YEAR(CONVERT(DATETIME,
csny, 102)) AS arrange
FROM bb_gbdjb
WHERE (YEAR(@cDate)- YEAR(CONVERT(DATETIME,
csny, 102)) < 35) AND (YEAR(@cDate)
- YEAR(CONVERT(DATETIME, csny, 102)) > 30)