Solved

Split date and time

Posted on 2014-03-22
11
252 Views
Last Modified: 2014-07-05
I would like to be able to split a date field ActualDateTime to show date in one field and time in another field.

Field name is ActualDateTime
Table name is Travel

the date field will be Travel_Date
the time field will be Travel_Time . note that time would not be 24 hours.
0
Comment
Question by:Eddy2010
11 Comments
 
LVL 65

Expert Comment

by:Jim Horn
Comment Utility
-- To create the columns
ALTER TABLE Travel
ADD Travel_Date date, Travel_Time time
GO

-- To populate them based on your requirements
UPDATE Travel
SET Travel_Date = CAST(ActualDateTime as date), 
   Travel_Time = CAST(ActualDateTime as time) 
GO

Open in new window

0
 

Author Comment

by:Eddy2010
Comment Utility
Thank you, this is a query only. I dont want to change the table structure. I want the output like that.
0
 

Author Comment

by:Eddy2010
Comment Utility
I am not an administrator. I just want the query result to return the value.
0
 
LVL 65

Expert Comment

by:Jim Horn
Comment Utility
>I want the output like that.
In that case it's a SELECT query, which is below plus whatever you want to add to it.

SELECT 
   CAST(ActualDateTime as date) as Travel_Date, 
   CAST(ActualDateTime as time) as Travel_Time 
FROM Travel 

Open in new window

0
 

Author Comment

by:Eddy2010
Comment Utility
thank you, but got the following error

Msg 243, Level 16, State 1, Line 3
Type date is not a defined system type.
Msg 243, Level 16, State 1, Line 3
Type time is not a defined system type.
0
Control application downtime with dependency maps

Visualize the interdependencies between application components better with Applications Manager's automated application discovery and dependency mapping feature. Resolve performance issues faster by quickly isolating problematic components.

 
LVL 65

Expert Comment

by:Jim Horn
Comment Utility
What version of SQL Server are you running?  
SQL 2005 only had the datetime data type, which is both date and time.
SQL 2008 introduced separate date and time data types.
0
 

Author Comment

by:Eddy2010
Comment Utility
2005
0
 

Author Comment

by:Eddy2010
Comment Utility
sorry
2008 R2
0
 
LVL 65

Accepted Solution

by:
Jim Horn earned 500 total points
Comment Utility
Assuming 2005, your only option here is to convert the date to a varchar, and then parse the string.  

The below works on my 2012 box, as I don't have 2005 handy.
Any date-specific server settings may affect the result.

CREATE TABLE Travel (ActualDateTime datetime) 
INSERT INTO Travel (ActualDateTime) 
VALUES ('2014-03-22 10:38:43.283'), ('2014-03-11 12:34:56.789'), ('2013-07-30 20:38:43.283') 

SELECT 
   convert(varchar, ActualDateTime ,5) as Travel_Date, 
   convert(varchar, ActualDateTime ,8) as Travel_Time 
FROM Travel

Open in new window


For more info on date styles, see SQL expert PortletPaul's article on SQL Server Date Styles (formats) using CONVERT()
0
 
LVL 75

Expert Comment

by:Anthony Perkins
Comment Utility
sorry
2008 R2

Since date and time are supported in SQL Server 2008, then perhaps that means your database is set to a compatibility level of 90 (SQL Server 2005)
0
 
LVL 69

Expert Comment

by:ScottPletcher
Comment Utility
CONVERT is the standard method of formatting a datetime for output.  In this specific case:


SELECT
    CONVERT(varchar(10), t.ActualDateTime, 101) AS Travel_Date,
    RIGHT(CONVERT(varchar(30), t.ActualDateTime, 0), 7) AS Travel_Time
FROM Travel t
0

Featured Post

Get up to 2TB FREE CLOUD per backup license!

An exclusive Black Friday offer just for Expert Exchange audience! Buy any of our top-rated backup solutions & get up to 2TB free cloud per system! Perform local & cloud backup in the same step, and restore instantly—anytime, anywhere. Grab this deal now before it disappears!

Join & Write a Comment

In this article—a derivative of my DaytaBase.org blog post (http://daytabase.org/2011/06/18/what-week-is-it/)—I will explore a few different perspectives on which week today's date falls within using Microsoft SQL Server. First, to frame this stu…
For both online and offline retail, the cross-channel business is the most recent pattern in the B2C trade space.
Using examples as well as descriptions, and references to Books Online, show the different Recovery Models available in SQL Server and explain, as well as show how full, differential and transaction log backups are performed
This videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now