October 24, 2016 at 8:40 am
I'm trying to convert a date to a string then grab parts of the string to make a value but it is not working correctly
Here is my code:
select externalId1
, externalId2
, fund_name
, fund_externalId1
, award_paidAmount
, disbursement_netAmount
, disbursement_scheduledDate
, disbursement_createdOn
, '5' + SUBSTRING(disbursement_scheduledDate,4,1) + SUBSTRING(disbursement_scheduledDate,6,2)
, disbursement_modifiedOn, award_createdOn, award_modifiedOn
, case when a.disbursement_adjustedReleaseDate IS NULL then a.disbursement_scheduledDate else a.disbursement_adjustedReleaseDate END AS ScheduledDisbursementDate
from dbo.dataExtract_AwardDisbursement_View a
I'm getting this error:
Msg 8116, Level 16, State 1, Line 1
Argument data type datetime is invalid for argument 1 of substring function.
October 24, 2016 at 8:44 am
You are attempting to use a string function on a date or datetime data type.
You need to use cast or convert on the field first, then attempt the substring.
Michael L John
If you assassinate a DBA, would you pull a trigger?
To properly post on a forum:
http://www.sqlservercentral.com/articles/61537/
October 24, 2016 at 8:51 am
maria.lindquist (10/24/2016)
I'm trying to convert a date to a string then grab parts of the string to make a value but it is not working correctlyHere is my code:
select externalId1
, externalId2
, fund_name
, fund_externalId1
, award_paidAmount
, disbursement_netAmount
, disbursement_scheduledDate
, disbursement_createdOn
, '5' + SUBSTRING(disbursement_scheduledDate,4,1) + SUBSTRING(disbursement_scheduledDate,6,2)
, disbursement_modifiedOn, award_createdOn, award_modifiedOn
, case when a.disbursement_adjustedReleaseDate IS NULL then a.disbursement_scheduledDate else a.disbursement_adjustedReleaseDate END AS ScheduledDisbursementDate
from dbo.dataExtract_AwardDisbursement_View a
I'm getting this error:
Msg 8116, Level 16, State 1, Line 1
Argument data type datetime is invalid for argument 1 of substring function.
Care to explain what it is you are trying to accomplish?
October 24, 2016 at 9:07 am
I'm not 100% sure what you are looking for but It would seem that DATEPART would be your friend as it appears you are trying to grab the year and month from a datetime field.
Here are some examples...
DECLARE @somedate DATETIME = GETDATE()
SELECT
@somedate AS myDate,
DATEPART(year, @somedate) AS justYear,
DATEPART(month, @somedate) AS justMonth,
'5' + CAST(DATEPART(year, @somedate) AS VARCHAR(4)) + CAST(DATEPART(month, @somedate) AS VARCHAR(2)) AS endResult
October 24, 2016 at 10:57 am
YB really hit the nail on the head. Depending on what you're trying to do, the DATEPART function can perform quite well. It's covered in Books Online at https://msdn.microsoft.com/en-us/library/ms174420.aspx.
Viewing 5 posts - 1 through 5 (of 5 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy