April 8, 2005 at 10:53 pm
I'm working with the daytime type data. Is there any way to retrieve only the date part and time part seperately and then put them in another column with datetime type?
for example:
column1(datetime) -> 2005-02-01 00:00:00.000
column2(datetime) -> 2005-06-07 12:03:45.000
put date from column1 and time from column2 together so column3(datetime) will be -> 2005-02-01 12:03:45.000
April 11, 2005 at 12:38 am
hello daomings,
i had this problem and i used convert and cast functions to solve this.may be this is not the best solution but try this.and if u get any thing better than this pls.. let me know.
convert(varchar(12),[EM_dtJoin],114) for split the time and
cast(convert(varchar(10),[EM_dtJoin],103) as datetime) for the date
regards..
amal
Amal Fernando
94-0717-318631 http://spaces.msn.com/members/amalatsliit/
April 11, 2005 at 12:56 am
See this article by SQL Server MVP Tibor Karaszi for an extensive explanation of the datetime datatype and how to solve problems like this one: http://www.karaszi.com/SQLServer/info_datetime.asp
April 11, 2005 at 10:28 am
hello daomings,
I'm using int column to store date part using following:
SET @event_date = DATEDIFF(dd, 0, getdate())
when I'm retrieving it (through stored proc) I convert it back:
CONVERT(varchar(20), cast(@event_date as datetime), 101).
Hope it helps.
Vadim Svinkin.
April 11, 2005 at 12:04 pm
Try this:
CREATE FUNCTION RemoveTimeFromDate (@DateToModify datetime)
--input like: 01/01/2003 12:34:56
--output: 01/01/2003 00:00:00
--Ian Stone December 2003, issue1.0
RETURNS datetime
AS
BEGIN
DECLARE @ReturnDate datetime
SET @ReturnDate=DATEADD(hh,-DATEPART(hh,@DateToModify),@DateToModify)
SET @ReturnDate=DATEADD(mi,-DATEPART(mi,@ReturnDate),@ReturnDate)
SET @ReturnDate=DATEADD(ss,-DATEPART(ss,@ReturnDate),@ReturnDate)
SET @ReturnDate=DATEADD(ms,-DATEPART(ms,@ReturnDate),@ReturnDate)
RETURN @ReturnDate
END
April 11, 2005 at 12:12 pm
I think that this would be a simpler version :
CREATE FUNCTION dbo.RemoveTime (@DateTime as datetime)
RETURNS DATETIME
AS
BEGIN
RETURN DATEADD(d, 0, datediff(d, 0, @DateTime))
END
GO
Select dbo.RemoveTime (GetDate())
drop function RemoveTime
April 11, 2005 at 7:40 pm
These are a bit dirty and make use of implicit conversions but they are probably pretty efficient:
create function dbo.dateportion (@d as datetime)
returns datetime
as
begin
return floor(cast(@d as float))
end
create function dbo.timeportion (@d as datetime)
returns datetime
as
begin
return @d - floor(cast(@d as float))
end
Tim Wilkinson
"If it doesn't work in practice, you're using the wrong theory"
- Immanuel Kant
Viewing 7 posts - 1 through 6 (of 6 total)
You must be logged in to reply to this topic. Login to reply