Solved

Date to String Conversion

Posted on 2008-06-20
2
2,194 Views
Last Modified: 2010-04-21
Does anyone know why this won't work in Sybase but works in MS SQl

I have an Stored Procedure.  I want to get the current month end from a string and return the value as a string '20080429'

So I pass in string '20080429'
and it returns a string '20080430'
This is want I've written but it doesn't work....

CREATE PROCEDURE Caoimhe @value_dt varchar(8)
as
declare @current_monthend varchar(8)
declare @monthend varchar(8)
select @monthend = CONVERT( varchar(8), dateadd(day, -1,dateadd(month, 1,convert(datetime,left(@value_dt,6) + '01',112))), 112)

return @monthend
0
Comment
Question by:MickeyMin
2 Comments
 
LVL 19

Accepted Solution

by:
grant300 earned 500 total points
ID: 21832912
Assuming ASE.  Please confirm which Sybase product and version you are using.

It works fine for me...

begin
declare @value_dt varchar(8)
set @value_dt = '20080423'
select CONVERT( varchar(8), dateadd(day, -1,dateadd(month, 1,convert(datetime,left(@value_dt,6) + '01',112))), 112)
end

Returns "20080430"

Oh, I see what the issue is.  You are trying to use the RETURN statement to get the output value.  That is a no-no for stored procedures.  You really need to use a stored function.

ASE v15 supports T-SQL function and the CREATE FUNCTION syntax.  You are trying to use the CREATE PROCEDURE syntax.  With a procedure, any return value other than 0 is seen as an error.

If you are using a version of Sybase prior to 15, you do not have the function syntax available to you.  You have one or two choices: you can call the procedure with the @monthend as and OUTPUT argument or, if you have it licensed, you can create a Java SQL function that will do what you want as well.

Regards,
Bill
0
 

Author Closing Comment

by:MickeyMin
ID: 31469129
Thank you!
0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A project that enables an administrator to perform actions within a user session context not just at the time of login but any time later on day(s) or week(s) later.
In threads here at EE, each comment has a unique Identifier (ID). It is easy to get the full path for an ID via the right-click context menu. However, we often want to post a short link within a thread rather than the full link. This article shows a…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

828 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