How do I enter the date into a column in a specific way without having them add up?

Posted on 2008-10-30
Medium Priority
Last Modified: 2012-05-05
I'm trying to insert a date plus "01"  into my database in a very specific format. For example, if I were inserting this today I would insert 2008103001. I've tried the code below, but it simply adds my values together and would put 2050 into the field instead what I want. I'm sure it's something simple, but I'm too stupid to figure it out.

UPDATE    table
SET thisfield = YEAR(GETDATE()) + MONTH(GETDATE()) + DAY(GETDATE()) + 01
Question by:cjhhiv
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
  • 2
  • +1
LVL 39

Expert Comment

ID: 22843153
The below query will return TOMORROW in a DATE only format with NO TIME.

select convert(datetime, convert(varchar(10), getdate()+1, 101), 101)

Expert Comment

ID: 22843155
What is the Datatype of the column in which you are inserting this value? I guess DateTime will not accept what you are desiring. You need to take Varchar.
LVL 74

Expert Comment

ID: 22843159
what do you mean by a date plus "01"

"01" is a string,  a date is a date, it doesn't make sense to add them together.

Do you mean add one hour to a date?

then do something like this...

update yourtable set thisfield = dateadd(hh,1,GetDate())
The Eight Noble Truths of Backup and Recovery

How can IT departments tackle the challenges of a Big Data world? This white paper provides a roadmap to success and helps companies ensure that all their data is safe and secure, no matter if it resides on-premise with physical or virtual machines or in the cloud.

LVL 39

Accepted Solution

BrandonGalderisi earned 500 total points
ID: 22843174

select convert(char(8), getdate(),112)

will yield yyyymmdd

select convert(varchar(10), getdate(),112)  + '01'

will yield yyyymmdd01
LVL 39

Expert Comment

ID: 22843181
You REALLY don't want to do this though.  You should store dates as dates and handle formatting when it's time to display it.

Author Closing Comment

ID: 31511767
Thanks "select convert(varchar(10), getdate(),112)  + '01'" was exactly what I was looking for!

Author Comment

ID: 22843225
Thanks all. I should have clarified, which BrandonGalderisi picked up on. I wanted to insert a number into the field that was based on a date. The number needed to have '01' added to the end. It was an nvarchar(50) field.

LVL 74

Expert Comment

ID: 22843270
I will second BrandonGalderisi's warning.  Store dates as dates,  it removes all ambiguity and makes operations more efficient and less error prone.

If it's at all feasible to do so,  modify that table so it's datatypes are correct

Featured Post

Get MongoDB database support online, now!

At Percona’s web store you can order your MongoDB database support needs in minutes. No hassles, no fuss, just pick and click. Pay online with a credit card. Handle your MongoDB database support now!

Question has a verified solution.

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

Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
For both online and offline retail, the cross-channel business is the most recent pattern in the B2C trade space.
Via a live example combined with referencing Books Online, show some of the information that can be extracted from the Catalog Views in SQL Server.
Viewers will learn how to use the SELECT statement in SQL and will be exposed to the many uses the SELECT statement has.
Suggested Courses

771 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