Converting UTC Datetime Values To Local Time Zones

May 20, 2008



I would like to convert a UTC datetime value to any Local Time Zone. Below is some code I'm trying to ensure works correctly. Anyone care to comment?

I have used the following lines before the function to obtain the 2nd parameter:


SELECT GETUTCDATE()

SELECT GETDATE()

SELECT DATEDIFF(hh,'2008-05-20 20:08:01.020', '2008-05-20 16:08:01.020')

DECLARE @UTC DATETIME

EXECUTE @UTC = UTCtoLocalDate '2008-05-20 20:08:01.020', -4


-- =============================================

-- Description: <Converts local datetime values to UTC datetime values, using the built-in GETUTCDATE() function.

-- <Parameter two (@TZ) represents the time zone difference from UTC/GMT. To obtain this value

-- <run GETUTCDATE() and GETDATE(), then determine the timezone from the difference between the two.>

-- =============================================

CREATE FUNCTION [dbo].[UTCtoLocalDate] (@UTCDate DATETIME, @TZ INT)

RETURNS DATETIME AS

BEGIN

IF ( DATEPART(hh, @UTCDate) <> 0 )

BEGIN

DECLARE @LocalDate DATETIME

DECLARE @UTCDelta INT

DECLARE @thisYear INT

DECLARE @DSTDay INT

DECLARE @NormalDay INT

DECLARE @DSTDate DATETIME

DECLARE @NormalDate DATETIME

SET @thisYear = YEAR(@UTCDate)

IF (@thisYear < 2007 )

BEGIN

SET @DSTDay = ( 2 + 6 * @thisYear - FLOOR(@thisYear / 4) ) % 7 + 1

SET @NormalDay = ( 31 - ( FLOOR( @thisYear * 5 / 4) + 1) % 7)

SET @DSTDate = '4/' + CAST(@DSTDay AS VARCHAR(2)) + '/' + CAST(@thisYear AS VARCHAR(4)) + ' 2:00:00.000 AM'

SET @NormalDate = '10/' + CAST(@NormalDay AS VARCHAR(2)) + '/' + CAST(@thisYear AS VARCHAR(4)) + ' 2:00:00.000 AM'

END

ELSE

BEGIN

SET @DSTDay = ( 14 - ( FLOOR( 1 + @thisYear * 5 / 4 ) ) % 7 )

SET @NormalDay = ( 7 - ( FLOOR ( 1 + @thisYear * 5 / 4) ) % 7 )

SET @DSTDate = '3/' + CAST(@DSTDay AS VARCHAR(2)) + '/' + CAST(@thisYear AS VARCHAR(4)) + ' 2:00:00.000 AM'

SET @NormalDate = '11/' + CAST(@NormalDay AS VARCHAR(2)) + '/' + CAST(@thisYear AS VARCHAR(4)) + ' 2:00:00.000 AM'

END

IF ((@UTCDate > @DSTDate) AND (@UTCDate < @NormalDate))

BEGIN

SET @UTCDelta = @TZ + 1

END

ELSE

BEGIN

SET @UTCDelta = @TZ

END

-- now convert utc date to local date

SET @LocalDate = DATEADD(Hour, @UTCDelta, @UTCDate)

END

ELSE

BEGIN

SET @LocalDate = @UTCDate

END

RETURN(@LocalDate)

END

GO

View 6 Replies


ADVERTISEMENT

Handle Time Zones And Daylight Savings Time In SQL Server

Dec 19, 2006

I wanted to know how we can handle Time Zones and Daylight Savings Time in SQL Server 2000 as well as 2005.

Any pointers would be helpful.

Pranav

View 1 Replies View Related

How To Convert UTC Based Datetime Values To Local Setting?

Sep 11, 2007

Hello:

I've recently discovered the MS CRM 3.0 stamps any datetime field in SQL as UTC (aka GMT). Even though the end user may select 12:00 noon on the CRM gui interface, the datetime is stamped in SQL as 16:00 (I'm in EST).

So, is there an easy way to read the 16:00 back to local EST, taking into account daylightsavings (DST)? Apparently in VB or C# this conversion is a trivial matter of using ToLocalTime(), but I don't believe SQL 2005 has such a convenient function.

I'm currently building a SQL view that I wish to use to support multiple reports, and it would be ideal for the view to translate the UTC datetime fields (even if via a user-defined function) to EST rather than coding every report or custom app to translate the UTC.

Any suggestions or links to code will be greatly appreciated!

Thanks,
Pete

View 5 Replies View Related

Replicating Across Time Zones

May 10, 1999

We're considering one database in the far east, using merge replication with a database in London.

There's a time difference of maybe 7 hours between the two sites - has anyone ideas on conflict resolution (thinking about the Far East updating a record at 16:00 their time, London updates the same record at 15:30 GMT - how does SQL Server know that London's time is the correct record to use?).

Any info gratefully accepted.

Thanks
Dan

View 2 Replies View Related

SQL Date Problem With Time Zones

Nov 5, 2007

 I just started having this problem since the change of clocks for end of DST. I am running a client application that updates data in a SQL server via a web service.The Client app is located in the Easter Time Zone (EST)The Server is located in the Central Time Zone (CST)I have a database in which a date/time value is entered.  The Data Type for this field on the sql server is DateTimeHow i have it working is, I send the Table, Fields and Values from the client app to the web service.  The web service constructs the sql statement and executes it.  Similarly, when I want to get data, i send the webservice the Table and Filter, and the webservice returns a DataSet.The problem I am having, is when I send (Insert or update) a date to the WebService to update the SQL Database, it inserts/updates with the date I send.  However, when I request that data, it then adjusts for the time zone difference.Example:Lets say it is November 11, 2007 at 12:35:10.000, (EST)First, from the client, I insert a record with the date field as Now().  When I look in the SQL Database, I see the value is 2007-11-5 12:35:10.000  - Which is correct.However, when I do query on that record, it returns the value of 2007-11-5 13:35:10.000 - adjusted One Hour for the time zone difference, even though if i look back at the SQL Server, it still has the original 12:35 value Why is it adjusting for Time Zone difference only when I reqest data?  How can I stop this?  Or, How can I have it adjust on Insert/Update as well (I don't care if it adjust - i just need it to be the same/consistent on both ends)Thanks 

View 1 Replies View Related

Transact SQL :: Get List Of All Time Zones / Offsets And DST Changes

Aug 28, 2015

I need to build a reference table that will contain the time zone, offset value and DST changes for all time zones.  Is there a way I can pull this from the windows server hosting sql server?

View 4 Replies View Related

SQL Server 2008 :: Converting SAS Dates In A Float Format To Datetime Values

Mar 17, 2015

I am importing a couple SAS datasets to SQL Server 2008 for a project. The dates are in a float format, they show up as DT_R8 in SSIS. How can I convert these values to SQL server datetime? I have tried dozens of methods I found on-line with no success, I keep getting 'Arithmetic overflow error converting expression to data type datetime.' errors.

View 0 Replies View Related

T-SQL (SS2K8) :: Converting Integer Values To Date-time?

Jul 15, 2014

As a DBA, I am working on a project where an ETL process(SSIS) takes a long time to aggregate and process the raw data.

I figured out few things where the package selects the data from my biggest 200 GB unpartitioned table which has a datekey column but the package converts its each row to an integer value leading to massive scans and high CPU.

Example: the package passed two values 20140714 and 4 which means it wants to grab data from my biggest table which belongs between 20140714 04:00:00 and 20140714 05:00:00.

It leads to massive implicit conversions and I am trying to change this.

To minimize the number of changes, what I am trying to do is to convert 20140714 and 4 to a datetime format variable.

Select Convert(DATETIME, LEFT(20170714, 8)) which gives me a date value but I am stuck at appending time(HH:00:00) to it.

View 4 Replies View Related

Transact SQL :: Calculate DateTime Column By Merging Values From Date Column And Only Time Part Of DateTime Column?

Aug 3, 2015

How can I calculate a DateTime column by merging values from a Date column and only the time part of a DateTime column?

View 5 Replies View Related

How To Convert UTC Time (retrieved From SQL) To Local Time In Reporting Services Based On Time Zone

Aug 7, 2007



Hi all,

I have created a report in SSRS 2005 which is being viewed by users from different Time Zones.

I have a dataset which has a field of type datetime (UTC). Now I would like to display this Date according to the User Time Zone.

For example if the date is August 07, 2007 10:00 AM UTC,

then I would like to display it as August 07, 2007 03:30 PM IST if the user Time Zone is IST.


Similarly for other Time Zones it should display the time accordingly.

Is this possible in SSRS 2005?

Any pointers will be usefull...

Thanks in advance
sudheer racha.

View 5 Replies View Related

Printing Local Time Zone In Time Format

Nov 16, 2007

I am in need of a format string or simple vb code that can add the local time zone to the end of a time field.. Something like:
9:36 AM EST
9:36 AM PST

This timezone will just come from the machine that the reporting server is on. I don't see this listed as a standard format, and I have come up empty so far in my research - anyone got a solution for this?

Thanks a bunch!

View 4 Replies View Related

Transact SQL :: Converting 24hrs Time To 12 Hours Time Query Format?

Apr 21, 2015

SELECT 
    CONVERT(VARCHAR(10),attnc_chkin_dt,101) as INDATE,
    CONVERT(VARCHAR(10),attnc_chkin_dt,108) as TimePart
FROM pmt_attendance

o/p
indate   04/18/2015
time part :17:45:00

I need to convert this 17:45:00 to 12 hours date format...

View 8 Replies View Related

SQL 2012 :: Converting Time String In Temp Table To Military Time Then Cast As Integer?

Dec 26, 2014

I need to take a temporary table that has various times stored in a text field (4:30 pm, 11:00 am, 5:30 pm, etc.), convert it to miltary time then cast it as an integer with an update statement kind of like:

Update myTable set MovieTime = REPLACE(CONVERT(CHAR(5),GETDATE(),108), ':', '')

how this can be done while my temp table is in session?

View 2 Replies View Related

Millisecond Values Missing When Inserting Datetime Into Datetime Column Of Sql Server

Jul 9, 2007

Hi,
I'm inserting a datetime values into sql server 2000 from c#

SQL server table details
Table nameate_test
columnname datatype
No int
date_t DateTime

C# coding
SqlConnection connectionToDatabase = new SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=testdb;Integrated Security=SSPI");
connectionToDatabase.Open();
DataTable dt1 = new DataTable();
dt1.Columns.Add("no",typeof(System.Int16));
dt1.Columns.Add("date_t", typeof(System.DateTime));
DataRow dr = dt1.NewRow();
dr["no"] = 1;
dr["date_t"] = DateTime.Now;
dt1.Rows.Add(dr);
for(int i=0;i<dt1.Rows.Count;i++)
{
string str=dt1.Rows["no"].ToString();
DateTime dt=(DateTime)dt1.Rows["date_t"];
string insertQuery = "insert into date_test values(" + str + ",'" + dt + "')";
SqlCommand cmd = new SqlCommand(insertQuery, connectionToDatabase);
cmd.ExecuteNonQuery();
MessageBox.Show("saved");
}
When I run the above code, data is inserted into the table
The value in the date_t column is 2007-07-09 22:10:11 000.The milliseconds value is always 000 only.I need the millisecond values also in date_t column.
Is there any conversion needed for millisecond values?

thanks,
Mani

View 3 Replies View Related

Retrieving A Datetime With A Time Of Midnight (from A Typical Datetime)

Sep 7, 2007

Nothing difficult, I just need a way to generate a new datetime column based on the column [PostedDate], datetime. So basically I want to truncate the time. Thanks a lot.

View 5 Replies View Related

Datetime W/ Format = D Still Showing Time Component Of Datetime

Jan 17, 2008

e.g.

1st March 2005 12:00:00

is showing as

01/03/2005 00:00:00

instead of

01/03/2005


Why does this happen?

View 4 Replies View Related

Transact SQL :: Update Time Portion Of DateTime Field With Time Parameter

Oct 3, 2015

I hope to update a DateTime column value with a Time input parameter.  Poor attempt below but it looks like the @ApptTime param is coming in as 10:45:00.0000000 and I might have an existing @SendOnDate as: 2015-10-05 07:00:00.000...I hope to end up with 2015-10-05 10:45:00.000

ALTER PROCEDURE [dbo].[SendEditUPDATE]
@QuePoolID int=null
,@ApptTime time(7)
,@SendOnDate datetime

[code]...

View 14 Replies View Related

Convert UTC Time To Local Time

Dec 29, 2005

Hello,

I am new with the reporting services. I am creating a report and I need to display date/time on the report. But the servers stores those date/time in UTC. How can I convert them to the local time in my report.

 

Thanks for your help.

 

 

View 13 Replies View Related

Null Values For Datetime Values Converted To '0001-01-01'

Mar 29, 2006

Hi

can somebody explain me how I can assign a NULL value to a datetime type field in the script transformation editor in a data flow task.
In the script hereunder, Row.Datum1_IsNull is true, but still Row.OutputDatum1 will be assigned a value '0001-01-01' which generates an error (not a valid datetime). All alternatives known to me (CDate("") or Convert.ToDateTime("") or Convert.ToDateTime(System.DBNull.Value)) were not successful.
Leaving out the ELSE clause generates following error: Error: Year, Month, and Day parameters describe an un-representable DateTime.




If Not Row.Datum1_IsNull Then

Row.OutputDatum1 = Row.Datum1

Else

Row.OutputDatum1 = CDate(System.Convert.DBNull)

End If



Any help welcome.

View 1 Replies View Related

Add Time To Datetime Value And Split Into Date And Time

Jun 12, 2007

Hi



i have the following situation. in my database i have a datetime field (dd/mm/yy hh:mms) and i also have a field timezone.

the timezone field has values in minutes that i should add to my datetime field so i have the actual time.

afterwards i split the datetime into date and time.

the last part i can accomplish (CONVERT (varchar, datetime, 103) as DATEVALUE and CONVERT (varchar, DATETIME, 108) as TIMEVALUE).



could anybody tell me how i can add the timezone value (in minutes) to my datetime value ?

i do all the calculations in my datasource (sql).



Thanks

V.

View 3 Replies View Related

Converting DateTime

Oct 14, 2004

Hello Everyone and thanks for your help in advance. I have an application that inserts a variety of values into a SQL Server database. Among the columns are three DateTime values. I have code working properly on my test server, but when I port the identical code to my production database, I get the following error:

Arithmetic overflow error converting expression to data type datetime. The statement has been terminated

When I remove any type of insert involving date, the application works. I have tried the date in various formats, for instance "09/12/2001" and "20010912", but still get the same error. Obviously, there must be differences in the SQL Servers, but I have never run into this problem before and the current server is running many applications involving dates. I haven't got a clue as to how to solve this problem. Any help is greatly appreciated. Thanks.

View 1 Replies View Related

Converting DateTime

Jul 23, 2005

Hi,When I open a tabe in the SQL enterprise manager I see the Timestamp Fieldin this Format :24/01/2005 16:45:00However when I'm using the Query analyzer or other SQL Client I see theTimestamp Field in this Format :2005-01-24 16:44:59.997Does Anybody know what to do in order to display the Timestamp Field infirst Format (24/01/2005 16:45:00) ?Please Advise,Yariv--Message posted via http://www.sqlmonster.com

View 3 Replies View Related

Converting Int Value To Datetime

May 2, 2006

Hi Guys, Could some help me....I am trying to use the below specified two field from "SysJobHistory"table from "MSDB". Field name "run_date" and "run_time". Both thisfields are of INT data type. Data saved in the above two fields is inthis this format 20060501 and 204001 respectively. I want save the datafrom this two field in another table in date time format. I want towrite a SELECT statement which converts the data from this two fieldsinto date time format so that it could be saved in another table whichhas date time data type column respectively.RegardsDipesh Shah

View 1 Replies View Related

Converting Datetime Int

Jul 20, 2005

I have tables with columns that stores datetime data in int format onSQL server 2000. For example, the datetime for '4/5/200400:00:00.000am' is stored as 1081180800. "4/4/2004 11:59:59.000pm' is1081180799. I need to generate reports that display datetime columnsin "mm/dd/yyyy hh:mn:ss" format with am or pm at the end. Bellow ismy query statment.select iorg_name as org, ref_num as [ticketnum], c_first_name as[firstname], c_last_name as [lastname], sym as type, [description] assummary, status, dateadd(s,open_date,'12/31/1969 08:00:00pm') asopened, dateadd(s,last_mod_dt,'12/31/1969 08:00:00pm') as irt,dateadd(s,close_date,'12/31/1969 08:00:00pm') as closed fromAHD.dbo.HDreports reportview WHERE reportview.open_date >= 1080882000AND reportview.open_date <= 1081227599.The result shows correctly with those records that are in daylightsaving time. Those records in standard time show 1 hour behind.Does anyone know how to make this query correctly display the data inproperly?

View 1 Replies View Related

Converting Numeric To Datetime

Dec 9, 2001

Have imported a file from AS400 into SQL and get the Date numeric as yyyymmdd.
How do I get is as a Datetime.

Example:

Delivery Date 20011201 (numeric)

View 1 Replies View Related

Converting A Datetime Column

Jul 21, 2000

I've got have a populated table and I want to convert a datetime column so it lists the date only (without the time component)
I tried to run this as a script, but returns an error:

update <table>
where <column>=convert(datetime,convert(char10),<column>,101))

When I run only this part, it does strip the date of the time component but it becomes a string, and I need this field stored as a datetime field:

convert(char(10),hire_date,101)

I'd appreciate any suggestions :)

View 1 Replies View Related

COnverting From Char To Datetime

Sep 14, 1998

Everytime I run a simple convert statement, from char to datetime, it works but when I use the `Select Convert(datetime, BeginDate)` in an insert statement it complains with a syntax error on the conversion from char to datetime. E.g.

Insert Into AlaskaData2( CurrIssueDate, InactivationDate)
select Convert (Datetime, CurrIssueDate) CurrIssueDate,
Convert(Datetime, InactivationDate) InactivationDate
from Alaskadata1
go

View 1 Replies View Related

Converting Integer To Datetime

Jul 20, 2005

Hi All,How do you convert int value to datetime datatype in sql servere.g 900mins to hh:mm:ssRegardsOla*** Sent via Developersdex http://www.developersdex.com ***Don't just participate in USENET...get rewarded for it!

View 3 Replies View Related

Converting Nvarchar To Datetime

Jan 17, 2008



i have some fields in SQL Server table as nvarchar(50) and the user actually enters date (example : 02/05/07) now they want those fields to be converted to datetime or small datetime field.

How do i achieve it without losing data?


Thanks
bhu

View 1 Replies View Related

Converting Varchar To DateTime

Sep 17, 2007



Hi,

I wanted to convert the varchar to date time and here is what i am doing


DECLARE @dt VARCHAR(20)

SET @dt = '20070111' -- YYYYMMDD format

select CONVERT(datetime, @dt, 120)


This works perfectly fine and the result would be- 2007-01-11 00:00:00.000

But if i changed my datetime format from YYYYMMDD to YYYYMMDDHHMM then this is failing and throwing

"Conversion failed when converting datetime from character string."

Can any one please let me know how do we achieve this?



~Mohan

View 3 Replies View Related

Need Help Converting A CHAR Into A Datetime

Nov 15, 2006

I have a Database which is having a Counterdate time Column stored in the form of Char(24)

But i need it to be in form of datetime so that i can use the datetime functions on it..When i use the cast or convert inside the function where i am passing this character it gives me error

"Conversion failed when converting datetime from character string."

I am done all permutatiions and combinations for this used

Set @DE = convert ( datetime, @ts,121)

Set @de = cast( @ts as datetime)

BUT ALWZ give me same error.... also when i copy the whole of the data table into some other database the error doesnt come.. i converts the character into the datetime..

I DONT understand why the Server is behaving wiered..

Hoping to get an answer soon.

With regards

Sharad

Database Developer ,

UIC

View 4 Replies View Related

Converting Varchar To Datetime

Oct 23, 2007



Hi,


I'm facing a small issue with date conversions. It would have been great if someone could help me out. I have a field in my database (SQL Server 2000) called SavDateTime of type varchar(50). I store dates in this field in the format "dd/MM/yy hh:mms". A sample date would be "23/10/2007 10:15:30 AM". Now I need to have an order by for this field, say like,


select * from sample order by SavDateTime desc


When I execute this query I get an error saying "The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.". I tried using the convert method also like CONVERT(DATETIME,SavDateTime,103), but the problem still exists. It would have been helpful if you could provide me with a solution to this problem.



Thanks & Regards,
Frens

View 7 Replies View Related

Converting String To Datetime

Jul 26, 2007

Hi
What's wrong about

SELECT SUM(CASE WHEN [PO Date] BETWEEN CONVERT(Datetime, @FY + '/04/01')
AND CONVERT(Datetime, @FY -1 + '/03/31') THEN Quantity ELSE 0 END) AS Expr1,
[Item No_]
FROM table A

View 7 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved