remove time from getdate() using SQL [duplicate] - sql-server

This question already has answers here:
Best approach to remove time part of datetime in SQL Server
(23 answers)
Closed 5 years ago.
I was wondering if anyone new how to remove the time hh,mm,ss from the getdate? I am very new to using SQL and am having trouble. Right now I have the date added so it could always pull the current date and add one day to that. Now I need to remove the time from being shown completely. I do NOT want to change time to 00:00:00, I want it to be completely hidden.
Here is my code:
Select DATEADD(DAY, 1, GETDATE())

Use CAST or CONVERT.
Using CAST
SELECT DATEADD(DAY,1,CAST(GETDATE() as date))
Using CONVERT
SELECT DATEADD(DAY,1,CONVERT(date,GETDATE()))

Related

Dynamic dates in SSRS

I need to make a report of all patients who had an appointment last week. This report will be added to another excel with some lookups and then put into Power BI because we don't have way of connecting our sql server.
I'm trying to reduce the amount of manual work I have to do by instead of using parameters with dates, adding a dynamic date.
I have tried using TODAY, CURRENT_DATE and they all come back with an error.
I just need it to give me data for 7 days prior to the current date
Any help would be greatly appreciated.
This is what the first part looks like:
SELECT
PM.vwApptDetail.Patient_Last_Name
,PM.vwApptDetail.Patient_First_Name
,PM.vwApptDetail.Patient_DOB
,PM.vwApptDetail.Appointment_DateTime
,PM.vwApptDetail.Appt_Type_Desc
,PM.vwApptDetail.Resource_Desc
,PM.vwApptDetail.Status
FROM
PM.vwApptDetail
WHERE
PM.vwApptDetail.Appointment_DateTime >
I ended up using:
WHERE Appointment_DateTime BETWEEN GETDATE() AND DATEADD(DAY, -7, GETDATE())
and it seems to have worked.

Why does converting a blank string to a date in SQL Server result in 1900-01-01? [duplicate]

This question already has answers here:
SQL cast datetime
(3 answers)
Closed 5 years ago.
Running a simple T-SQL query of SELECT CONVERT(date, '') will render a result of 1900-01-01. It seems to me that it would be more consistent to convert a blank string to either 1753-01-01 (the minimum allowable date value) or NULL. 1900 just seems so arbitrary, but I assume this was a deliberate design choice made by the MS SQL programmers. What is the purpose of this functionality?
It is due to implicit conversion. The 0 date in sql server is 1/1/1900. Any dates earlier than that are a negative number.
SQL Server datetime calendar start point is start of day of 01 January 1900.
https://stackoverflow.com/a/17071583/7974050

Create datetime form dd/mm/yy(yy) [duplicate]

This question already has answers here:
PHP Date Formatting not working wen using date_format()
(2 answers)
Closed 6 years ago.
I try to create datetime form dd/mm/yy(yy), but with no success?
code:
var_dump(date_create("22/12/2016"));
or
var_dump(strtotime("22/12/2016"));
neither works. This is the demo. Why I cannot create from this format?
before date_create convert your date into an acceptable date format
using
DateTime::createFromFormat
(PHP 5 >= 5.3.0, PHP 7)
DateTime::createFromFormat -- date_create_from_format — Parses a time string according to a specified format
var_dump(date_create(DateTime::createFromFormat('d/m/Y', "22/12/2016")->format('Y-m-d')));
Demo

MDX Query: Trying to bring back calculated years

I have a piece of a report which currently works fine with hard-coded years, I am trying to make them a bit more dynamic so as to show the current year and previous year returns to avoid having to update this every year. This is a simple thing to do in SQL, but I'm having a much harder time figuring this out in MDX, which I am still learning. The row in question is the [Date].[Year].&[2013]:[Date].[Year].&[2014]. Here is my current query:
SELECT {
[Measures].[Users],
[Measures].[Sessions]
} ON COLUMNS,
(
{[User Type].[Description].&[Customer], [User Type].[Description].&[Vendor]},
[Date].[Year Month].[Year Month],
[Date].[Month Name].[Month Name],
[Date].[Year].&[2013]:[Date].[Year].&[2014]
) ON ROWS
FROM [My Cube]
Thanks for any help.
You can't use a range inside a tuple. You first need to create a member.
Put this in before the SELECT clause:
WITH Member [Date].[Periods] as Aggregate( [Date].[Year].&[2013]:[Date].[Year].&[2014])
and then replace the range in your tuple by [Date].[Periods]

How do I compare only the time part? [duplicate]

This question already has an answer here:
Using DateTime?.Value.TimeOfDay in LINQ Query
(1 answer)
Closed 8 years ago.
I'm storing a time span in Sql Server as two columns of type datetime. (start and end)
So the date part of each column needs to be ignored.
Given some c# datetime instance, using an EF linq query, how can I determine whether the c# datetime's time is within the time span?
So the date part of all three values is ignored.
You can extract TimeOfDay property from DateTime that gives you the TimeSpan representing the time into the day:
DateTime dt = DateTime.Now;
dt.TimeOfDay;
Returns TimeSpan :
14:16:22.3100098

Resources