没关系的,其实smalldatetime中存储的只是一个和1900-1-1 0;00:00 的整数偏移量(smalldatetime 的值存储为两个 2 字节的整数。第一个 2 字节存储 1900 年 1 月 1 日后的天数。另外一个 2 字节存储午夜后的分钟数。),要取的时候直接取DATEPART ( hh , date ) +DATEPART ( mi, date )
调试欢乐多
declare @a datetime
set @a='23:21:38'select @a 它会自己加上1900select convert(char(8),@a,108) 但你可以在显示的时候去掉
如果没有前台程序,那就RIGHT(CONVERT(varchar(19), 开始时间, 120), 8) 也可以
我觉得你可以用一个函数,将smalldatetime数据返回一个字符串就可以了
create function fuca(@hiredate smalldatetime
)
returns nvarchar(20)
as
begin
declare @s nvarchar(20)
set @s = cast(DATEPART(hh ,@hiredate)as nvarchar)+':'+cast(DATEPART( mi,@hiredate)as nvarchar)
return(@s)
end
go
select dbo.fuca(getdate())
也可以用month(date),返回的是一個數值型數據