Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
lols
Posting Yak Master
174 Posts |
Posted - 2009-03-18 : 08:44:19
|
When I Fire a query like this:SELECT DISTINCT TOP 10 CONVERT(VARCHAR(12), SomeDate, 106) as SomeDate FROM Stats ORDER BY SomeDate desc on a data as given below2009-02-28 08:42:07.4202009-02-28 08:42:07.1072009-02-28 08:42:04.6532009-02-28 08:41:55.4372009-02-28 08:41:54.3572009-02-28 08:41:49.5472009-02-27 08:41:47.2002009-02-27 08:41:45.7502009-02-26 08:41:44.1372009-02-26 08:41:37.090 I Get results like this:31 Jan 200930 Jan 200929 Jan 200928 Jan 200928 Feb 200927 Jan 200927 Feb 200926 Jan 200926 Feb 200925 Feb 2009 I want the output to be like this:28 Feb 200927 Feb 200926 Feb 200925 Feb 200924 Feb 200923 Feb 200922 Feb 200921 Feb 200920 Feb 200919 Feb 2009 How to change my code? |
|
|
bklr
Master Smack Fu Yak Hacker
1693 Posts |
Posted - 2009-03-18 : 08:50:55
|
| how ur getting the date jan in output given by u when no date is there in jan month in given data2009-02-28 08:42:07.4202009-02-28 08:42:07.1072009-02-28 08:42:04.6532009-02-28 08:41:55.4372009-02-28 08:41:54.3572009-02-28 08:41:49.5472009-02-27 08:41:47.2002009-02-27 08:41:45.7502009-02-26 08:41:44.1372009-02-26 08:41:37.090get like this31 Jan 200930 Jan 200929 Jan 200928 Jan 200928 Feb 200927 Jan 200927 Feb 200926 Jan 200926 Feb 200925 Feb 2009 |
 |
|
|
lols
Posting Yak Master
174 Posts |
Posted - 2009-03-18 : 08:51:53
|
| That was just a sample..:) |
 |
|
|
Nageswar9
Aged Yak Warrior
600 Posts |
Posted - 2009-03-18 : 08:52:50
|
| Hi please try this oncedeclare @startmonth datetime,@endmonth datetimeselect @endMonth = getdate() ,@startmonth = getdate()-10 SELECT convert(varchar(32),DATEADD(DAY, number, @startmonth),106) 'Date'FROM Master..spt_valuesWHERE type = 'P' AND DATEADD(DAY, number, @startmonth) <= @endMonthorder by date desc |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2009-03-18 : 08:53:59
|
Don't use same name for ALIAS as source column. E 12°55'05.63"N 56°04'39.26" |
 |
|
|
lols
Posting Yak Master
174 Posts |
Posted - 2009-03-18 : 08:57:30
|
| Thanks Peso but when I change that, I still do not get the desired output..My aim is to get the last 10 days i.e from Mar 18 to Mar 09 and I use this query SELECT DISTINCT TOP 10 CONVERT(VARCHAR(12), SomeDate, 106) as SomeDate FROM Stats ORDER BY SomeDate desc |
 |
|
|
lols
Posting Yak Master
174 Posts |
Posted - 2009-03-18 : 08:58:21
|
| Nageshwar..is there a way to get the last 10 days listed without giving the start and end params? |
 |
|
|
lols
Posting Yak Master
174 Posts |
Posted - 2009-03-18 : 09:09:48
|
| OK here's what I did - SELECT DISTINCT TOP 30 CONVERT(VARCHAR(22), SomeDate, 107) as SomeOtherDate FROM Stats ORDER BY CONVERT(VARCHAR(22), SomeDate, 107) descI get the resultsMar 18, 2009Mar 17, 2009Mar 16, 2009Mar 15, 2009Mar 14, 2009Mar 13, 2009Mar 12, 2009Mar 11, 2009Mar 10, 2009Mar 09, 2009Mar 08, 2009Mar 07, 2009Mar 06, 2009Mar 05, 2009Mar 04, 2009Mar 03, 2009Mar 02, 2009Mar 01, 2009Jan 31, 2009Jan 30, 2009Jan 29, 2009Jan 28, 2009Jan 27, 2009Jan 26, 2009Feb 28, 2009Feb 27, 2009Feb 26, 2009Feb 25, 2009Feb 24, 2009Feb 23, 2009After Mar 1, I want Feb 28 and Feb 27 and so on... |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2009-03-18 : 09:17:27
|
[code]-- Prepare sample dataDECLARE @Stats TABLE ( SomeDate DATETIME )INSERT @StatsSELECT ABS(CHECKSUM(NEWID())) % 30000 + 30000FROM master..spt_values-- Display the resultSELECT TOP 30 CONVERT(VARCHAR(12), SomeDate, 107) as SomeDateFROM @StatsGROUP BY CONVERT(VARCHAR(12), SomeDate, 107), CONVERT(VARCHAR(8), SomeDate, 112)ORDER BY CONVERT(VARCHAR(8), SomeDate, 112) DESC[/code] E 12°55'05.63"N 56°04'39.26" |
 |
|
|
lols
Posting Yak Master
174 Posts |
Posted - 2009-03-18 : 09:19:34
|
| Bingo! Thanks a ton Peso |
 |
|
|
|
|
|
|
|