.NET Diary

January 21, 2009

SQL error : Conversion failed when converting datetime from character string

Filed under: All, SQL — leoullas @ 10:29 am

 

sql-error-conversion-failed-when-converting-datetime-from-character-string

sql-error-conversion-failed-when-converting-datetime-from-character-string

In case of two THEN conditions of the CASE statement reference expressions of different data types. In this case, SQL Server implicitly converts the data type for the entire CASE expression to the data type in the THEN clause that has the highest order of data-type precedence. (See the SQL Server Books Online (BOL) topic “Data Type Precedence.”)

BEFORE:

declare @SortExpression varchar(20)

set @SortExpression =‘OverSpeed’

 

SELECT        Journey_Id,

                     Drv_ID,

                     Journey_Start_Dt AS ‘StartDateTime’,

                     Journey_End_Dt AS ‘EndDateTime’,

                     Journey_Time_Sec AS ‘TotalTime’,

                     Journey_Dest_Miles AS ‘TotalDistance’,

                     Max_Speed_Mph AS ‘MAXSpeed’,

                     Brake_Flg AS ‘AggDriving’,

                     OverSpeed_Flg AS ‘OverSpeed’

FROM         DRIVER_JOURNEY_INFO AS td

WHERE     (Company_Id = 9003) AND (Drv_ID = 2017) AND (Journey_Start_Dt BETWEEN ’08/01/2008′ AND ’09/30/2008′) AND

                      (Journey_End_Dt BETWEEN ’08/01/2008′ AND ’09/30/2008′)

ORDER BY

              CASE

                     WHEN @SortExpression = ‘Journey_Id’ THEN Journey_Id

                     WHEN @SortExpression = ‘StartDateTime’ THEN Journey_Start_Dt

                     WHEN @SortExpression = ‘EndDateTime’ THEN Journey_End_Dt

                     WHEN @SortExpression = ‘TotalTime’ THEN Journey_Time_Sec

                     WHEN @SortExpression = ‘TotalDistance’ THEN Journey_Dest_Miles

                     WHEN @SortExpression = ‘MAXSpeed’ THEN Max_Speed_Mph

                     WHEN @SortExpression = ‘AggDriving’ THEN Brake_Flg

                     WHEN @SortExpression = ‘OverSpeed’ THEN OverSpeed_Flg

              ELSE Journey_Id

              END

DESC

CORRECTED:

 

 

ORDER BY

CASE

       WHEN @SortExpression = ‘Journey_Id’ THEN Journey_Id 

       WHEN @SortExpression = ‘StartDateTime’ THEN Journey_Start_Dt 

       WHEN @SortExpression = ‘EndDateTime’ THEN Journey_End_Dt 

       WHEN @SortExpression = ‘TotalTime’ THEN Journey_Time_Sec 

       WHEN @SortExpression = ‘TotalDistance’ THEN Journey_Dest_Miles                                         WHEN @SortExpression = ‘MAXSpeed’ THEN Max_Speed_Mph

       WHEN @SortExpression = ‘TAII’ THEN (CAST(TAI_Time_Sec AS DECIMAL(18,2))/Journey_Time_Sec)*10

       WHEN @SortExpression = ‘TIP’ THEN (CAST(TI_Time_Sec AS DECIMAL(18,2))/Journey_Time_Sec)*100

       WHEN @SortExpression = THEN Journey_Id

       END 

       DESC,

       CASE WHEN @SortExpression = ‘AggDriving’ THEN Brake_Flg END  DESC,

   CASE WHEN @SortExpression = ‘OverSpeed’ THEN OverSpeed_Flg END  DESC

Web environment: use ViewState instead of global variable

Filed under: All, ASP.NET — leoullas @ 10:19 am

A small piece of code…

protected void Page_Load(object sender, EventArgs e)

    {      

        QueryStringHandler.EnsureURLNotTampered(Request.QueryString);

        if (!this.IsPostBack)

        {

            ViewState["firstTimeLoad"] = “No”;//CR 140 Map message

            Page.Validate();//

            this._presenter.OnViewInitialized();

            InitialLoad();

            ViewState["firstTimeLoad"] = “Yes”;//CR 140 Map message

        }

        if (gvDriver.HeaderRow != null)

            ShellUtility.GridViewHeadertemplate(gvDriver, gvDriver.HeaderRow, SortExpression, SortOrder);

        this._presenter.OnViewLoaded();

}

While calling

            if (ViewState["firstTimeLoad"].Equals(“Yes”))//CR 140 Map message

            {

                ShellUtility.GridViewHeadertemplate(gvDriver, e.Row, SortExpression, SortOrder);

         }//CR 140 Map message

Textbox getting emptied (Passwords etc) while button clicking: Solution

Filed under: All, ASP.NET, C# — leoullas @ 10:10 am

 Put the following piece of code in your aspx.cs file where the pwd-text is getting emptied.

        if (txtPassword.Text != string.Empty)

        {

            txtPassword.Attributes.Add(“value”, txtPassword.Text);

        }

        if (txtConfirmPwd.Text != string.Empty)

        {

            txtConfirmPwd.Attributes.Add(“value”, txtConfirmPwd.Text);

        }

Trim() in Javascript()

Filed under: All, Javascript — leoullas @ 10:07 am

 

function trim(str, chars) {

              return ltrim(rtrim(str, chars), chars);

}

 

function ltrim(str, chars) {

              chars = chars || “\\s”;

              return str.replace(new RegExp(“^[" + chars + "]+”, “g”), “”);

}

 

function rtrim(str, chars) {

              chars = chars || “\\s”;

              return str.replace(new RegExp(“[" + chars + "]+$”, “g”), “”);

}

Syntax error in TextHeader of StoredProcedure

Filed under: All, Javascript, SQL — leoullas @ 8:46 am

Microsoft SQL Server Management Studio get this error when trying to modify script the above stored procedure

    

syntax-error-in-textheader-of-storedprocedure1
syntax-error-in-textheader-of-storedprocedure1

Script failed for StoredProcedure ‘dbo.usp_Edit_User’.  (Microsoft.SqlServer.Smo)

Syntax error in TextHeader of StoredProcedure ‘usp_Edit_User’. (Microsoft.SqlServer.Smo)

 Solve:

You have nested comments before your ALTER PROC, which is not possible in TSQL.  Change your header.

BEFORE:

/*

exec usp_Edit_User @Company_Id=N’9003′, @User_Id=N’WWWWWWWWWWWWWWWWWWWW’,/* @Password=N’dris#12345′,*/ @User_Name=N’cWWWWWW’, @Role_Id =N’1′, @Branch_Id=N’13001′, @Is_Locked=N’True’, @Active_Flg=N’Y', @Modified_By=N’Test_001′, @UserTimeStamp=N’106060′

*/

CORRECTED:

 

exec usp_Edit_User @Company_Id=N’9003′, @User_Id=N’WWWWWWWWWWWWWWWWWWWW’, @User_Name=N’cWWWWWW’, @Role_Id =N’1′, @Branch_Id=N’13001′,@Is_Locked=N’True’,@Active_Flg=N’Y', @Modified_By=N’Test_001′, @UserTimeStamp=N’106060′

Calling Javascript Alert from aspx.cs file

Filed under: All, ASP.NET — leoullas @ 8:44 am

 

ScriptManager.RegisterStartupScript(this, typeof(UpdatePanel), “Myscript”, “alert(‘Can not delete logged in user.’);”, true);

//string  myscript = “function Hello() { alert(‘Hi’);}”;

//Page.ClientScript.RegisterClientScriptBlock(this.GetType(), “MyScript”, myscript, true);          

//ScriptManager.RegisterClientScriptBlock(this, typeof(Page), “Myscript”, myscript, true);

Update Panel Demo

Filed under: All, ASP.NET — leoullas @ 8:41 am

<form id=”form1″ runat=”server”>
        <asp:ScriptManager ID=”ScriptManager1″ runat=”server”>
        </asp:ScriptManager>
    <div>
        Label outside the Update Panel Refreshed at:
        <asp:Label ID=”Label2″ runat=”Server”></asp:Label>
        <br />
        <br />
        <asp:Button ID=”Button1″ runat=”Server” Text=”Refresh” OnClick=”Button1_Click” />
        <br />
        <br />
        <asp:UpdatePanel ID=”UpdatePanel1″ runat=”Server” UpdateMode=”conditional”>
        <ContentTemplate>
            Label within the Update Panel Refreshed at:
            <asp:Label ID=”Label1″ runat=”server”></asp:Label>       
        </ContentTemplate>
        <Triggers>
            <%–<asp: PostBackTrigger ControlID=”Button1″ />–%>
            <asp:AsyncPostBackTrigger ControlID=”Button1″ EventName=”Click” />
        </Triggers>      
        </asp:UpdatePanel>   
    </div>
    </form>

 

Code behind

 protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Text = System.DateTime.Now.ToString();
        Label2.Text = System.DateTime.Now.ToString();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
       
    }

Trim White Spaces within words

Filed under: All, ASP.NET — leoullas @ 8:37 am

using System.Text.RegularExpressions;
private string RemoveSpaces(string str)
{

string result = “”;

Regex regulEx = new Regex(@”[\s]+”);

result = regulEx.Replace(str,” “);

return result;
}
The above function receives a string and trims all the occurances of extra white spaces between words.
So, an input of “Hey   this       is     a     Word” will return the output as “Hey this is a Word

Example of ASP.Net C# Split String Function

Filed under: All, ASP.NET — leoullas @ 8:33 am

string strData = “a,b,c,d,e,f,g,h,i,j”;       
char[] separator = new char[] { ‘,’ };

string[] strSplitArr = strData.Split(separator);

foreach (string arrStr in strSplitArr)
{
       Response.Write(arrStr + ” “);

 

 Above example code of C# split function will split string from “,” separator specified in the char array separator and generates a string array. C# foreach loop through the array and reads the value at each index of the array.

 Output: a b c d e f g h i j

January 20, 2009

Convert Total time (seconds ) to hh:mi:ss format

Filed under: All, SQL — leoullas @ 11:43 am

Three  options:

i>                    Get timespan in seconds from SP level. Convert it in aspx level

Console.WriteLine(TimeSpan.FromSeconds(70165))

ii>                  Convert it directly in SP level.

declare @i int

set @i = 3683

–set @i = 56769

–set @i = 663719 — more than 100 hours

select replace(str(@i/3600,len(ltrim(@i/3600))+abs(sign(@i/35999)-1)) + ‘:’ + str((@i/60)%60,2) + ‘:’ + str(@i%60,2) ,‘ ‘,’0′) as ‘raw’

–O/P:   01:01:23

iii>                   Function fordifferent formats

ALTER FUNCTION [dbo].[fn_FormatTotalTime]( @TimeInSecond INT,

@Format_type VARCHAR(25)

)

RETURNS VARCHAR(40) AS

BEGIN

– SET @SecondsToConvert = 31536000

– Declare variables

DECLARE @Hours int

DECLARE @Minutes int

DECLARE @Seconds int

DECLARE @f_hrs VARCHAR(20)

DECLARE @f_mnt VARCHAR(20)

DECLARE @f_sec VARCHAR(20)

DECLARE @Time VARCHAR(40)

– Set the calculations for hour, minute and second

SET @Hours = @TimeInSecond/3600

SET @Minutes = (@TimeInSecond % 3600) / 60

SET @Seconds = @TimeInSecond % 60

SELECT @f_hrs = CASE WHEN LEN(CONVERT(VARCHAR(10),@Hours))= 1

THEN ’00′+ CONVERT(VARCHAR(10),@Hours)

WHEN LEN(CONVERT(VARCHAR(10),@Hours))= 2

THEN ’0′+ CONVERT(VARCHAR(10),@Hours)

ELSE CONVERT(VARCHAR(10),@Hours)

END,

@f_mnt = CASE WHEN LEN(CONVERT(VARCHAR(2),@Minutes))= 1

THEN ’0′+ CONVERT(VARCHAR(2),@Minutes)

ELSE CONVERT(VARCHAR(2),@Minutes)

END,

@f_sec = CASE WHEN LEN(CONVERT(VARCHAR(2),@Seconds))= 1

THEN ’0′+ CONVERT(VARCHAR(10),@Seconds)

ELSE CONVERT(VARCHAR(10),@Seconds)

END

– To show 0 for two digits only

IF(LTRIM(RTRIM(@Format_type)) = ‘HH:MM:SS’ )

BEGIN

SELECT @f_hrs = CASE WHEN LEN(CONVERT(VARCHAR(10),@Hours))= 1

THEN ’0′+ CONVERT(VARCHAR(10),@Hours)

ELSE CONVERT(VARCHAR(10),@Hours)

END

END

– Display the @Time variable as per format

SELECT @Time = CASE WHEN LTRIM(RTRIM(@Format_type)) = ‘HHH:MM:SS’

THEN RTRIM(CONVERT(CHAR(10), @f_hrs) ) + ‘:’ +CONVERT(CHAR(2), @f_mnt) + ‘:’ +CONVERT(CHAR(2), @f_sec)

WHEN LTRIM(RTRIM(@Format_type)) = ‘HH:MM:SS’

THEN RTRIM(CONVERT(CHAR(10), @f_hrs) ) + ‘:’ +CONVERT(CHAR(2), @f_mnt) + ‘:’ +CONVERT(CHAR(2), @f_sec)

WHEN LTRIM(RTRIM(@Format_type)) = ‘HHH:MM’

THEN RTRIM(CONVERT(CHAR(10), @f_hrs) ) + ‘:’ +CONVERT(CHAR(2), @f_mnt)

WHEN LTRIM(RTRIM(@Format_type)) = ‘hours,min,sec’

THEN RTRIM(CONVERT(CHAR(10), @f_hrs) ) + ‘ hours ‘ +CONVERT(CHAR(2), @f_mnt) + ‘ min ‘ +CONVERT(CHAR(2), @f_sec) + ‘ sec’

WHEN LTRIM(RTRIM(@Format_type)) = ‘hours,min’

THEN RTRIM(CONVERT(CHAR(10), @f_hrs) ) + ‘ hours ‘ +CONVERT(CHAR(2), @f_mnt) + ‘ min’

END

RETURN(@Time)

END

 

 
 

 

 

« Newer PostsOlder Posts »

Theme: Silver is the New Black. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.