x
login about faq Site discussion (meta-askssc)

Split Column based on Delimiter

I need to spilt a date into two columns based on the HYPHEN

Any suggestions?

EXAMPLE

6/13/2012-6/12/2013

It works for EndDate but not for StartDate

select
 StartDate = substring([ColumnA],
                   charindex('-',[ColumnA])-10 ,
                   len([ColumnA]))

  EndDate = substring([ColumnA],
                   charindex('-',[ColumnA])+1 ,
                   len([ColumnA]))
FROM TABLEA
more ▼

asked Jul 24 '12 at 08:35 PM in Default

sqlLearner 1 gravatar image

sqlLearner 1
542 13 28 33

(comments are locked)
10|1200 characters needed characters left

2 answers: sort voted first
select startdate= ltrim(substring([ColumnA],1,charindex('-',[ColumnA])-1))
select enddate= ltrim(substring([ColumnA],charindex('-',[ColumnA])+1,len([ColumnA])))
more ▼

answered Jul 24 '12 at 09:43 PM

sunil2711 gravatar image

sunil2711
196 1 2 6

(comments are locked)
10|1200 characters needed characters left

Why do you store two dates in one column?

If possible, you should change your data model so you store the two dates in separate columns. Also store them in date or datetime columns, not as text. That will ensure you have proper dates stored.

If the two dates are collected from a text field in an app or so, you should use the application code to split the string and collect the two separate dates. String manipulation is quicker and more sophisticated in other languages than T-SQL.

If the two dates are stored like that in an external source that you are loading from, I suggest using SSIS to transform them into two different columns.

As far as the solution using T-SQL, I think sunil2711 is there, or at least close enough for you to work it out on your own.

more ▼

answered Jul 24 '12 at 10:09 PM

Magnus Ahlkvist gravatar image

Magnus Ahlkvist
13.7k 13 17 30

It's not my data model it was data that we received. I agree thougha very poor data model

Jul 25 '12 at 02:00 PM sqlLearner 1
(comments are locked)
10|1200 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments



Facebook logo Follow Ask SSC on Facebook
Find Ask SSC on Google+
linkedin logo Find us on LinkedIn

Topics:

x224
x6

asked: Jul 24 '12 at 08:35 PM

Seen: 570 times

Last Updated: Jul 25 '12 at 02:00 PM

Copyright © 2002-2012 Simple Talk Publishing. All Rights Reserved. If you have any queries, please contact the site administrators.
Ask SQL Server Central is a community service provided by Red Gate.