Oprettet tir. d. 16. marts 2010 kl. 13:28:56

elvstine
elvstine (12.923 point. Point ude: 0)

Hjælp til statement

SELECT    NewsID, NewsDate, Headline, NewsText, ImageData, ImageName, CountryID, HQ, ImageHeight, ImageWidth
FROM        News_Tbl
ORDER BY NewsDate

Giver mig følgende sortering:
05-01-2010 17:31:46
05-01-2010 17:40:36
05-01-2010 17:45:26
07-03-2010 22:24:24
10-12-2009 11:57:11
11-12-2009 11:57:42
12-03-2010 19:23:49
22-02-2010 09:39:44
23-02-2010 17:19:52
26-02-2010 13:01:40

Er der nogen der kan hjælpe mig med at sortere mine nyheder så den øverste er den sidste nye og den nederste er den ældste.

Skrevet tir. d. 16. marts 2010 kl. 13:32:18| #1

drlotto
drlotto (11.290 point)
Din newsid er vel en unik id, der automatisk stiger?

Skrevet tir. d. 16. marts 2010 kl. 13:36:24| #2

drlotto
drlotto (11.290 point)
Glemte helt at skrive mit forslag:

SELECT  NewsID, NewsDate, Headline, NewsText, ImageData, ImageName, CountryID, HQ, ImageHeight, ImageWidth
FROM        News_Tbl
ORDER BY NewsID DESC

Skrevet tir. d. 16. marts 2010 kl. 13:42:15| #3

elvstine
elvstine (12.923 point)
Ja, men jeg vil sortere ud fra dato

Skrevet tir. d. 16. marts 2010 kl. 13:43:49| #4

drlotto
drlotto (11.290 point)
hvorfor det? hvis det er den nyeste dato har den højeste NewsID?

Skrevet tir. d. 16. marts 2010 kl. 13:47:23| #5

elvstine
elvstine (12.923 point)
Fordi at man kan godt oprette en ny nyhed med en dato ældre end dags dato

Skrevet tir. d. 16. marts 2010 kl. 13:49:14| #6

drlotto
drlotto (11.290 point)
Okay, så kan jeg ikke lige hjælpe dig med din opgave.

Skrevet tir. d. 16. marts 2010 kl. 13:51:18| #7

drlotto
drlotto (11.290 point)
Du kan jo self lave din dato lidt om,

hvis datoen var:  YYYY-MM-DD HH:MM:SS

burde SQL kunne klare resten.

Skrevet tir. d. 16. marts 2010 kl. 14:45:04| #8

arne_v
arne_v (1.016.169 point)
ORDER BY NewsDate DESC

??

Skrevet tir. d. 16. marts 2010 kl. 14:55:15| #9

drlotto
drlotto (11.290 point)
arne_v den vil ikke virke, når datoen er: DD-MM-YYYY da 31-10-2009 er større end 10-01-2010

Skrevet tir. d. 16. marts 2010 kl. 15:14:14| #10

arne_v
arne_v (1.016.169 point)
Er det felt en VARCHAR og ikke en DATETIME ?

Skrevet tir. d. 16. marts 2010 kl. 15:17:49| #11

arne_v
arne_v (1.016.169 point)
Ser saadan ud. Det bedste ville saa nok vaere at lave feltet til en DATETIME.

Ellers maa man konvertere til den form du angiver i #7 med noget SUBSTRING manipulation.

Skrevet tir. d. 16. marts 2010 kl. 15:18:19| #12

arne_v
arne_v (1.016.169 point)
Evt. CONVERT til DATETIME hvis vi kan finde et matchende format.

Skrevet tir. d. 16. marts 2010 kl. 16:46:18| #13

hijacked
hijacked (14.040 point)
order by convert(smalldatetime,NewsDate,120) desc

burde virke

Skrevet tir. d. 16. marts 2010 kl. 17:29:22| #14

hijacked
hijacked (14.040 point)
order by convert(smalldatetime,NewsDate,120) desc

Skrevet ons. d. 21. april 2010 kl. 14:26:30| #15

elvstine
elvstine (12.923 point)
Af en eller anden grund har jeg ikke fået email at det er lagt beskeder efter #6

Arne_v >> smid et svar så deler i Point

Jeg løste det på følgende måde: Oprettelse af dato

        Dim myNewsDate As Integer = ConvertToUnixTimestamp(DateTime.Now)


    Private Shared Function ConvertToUnixTimestamp(ByVal MyDate As DateTime) As Double
        Dim origin As New DateTime(1970, 1, 1, 0, 0, 0, 0)
        Dim diff As TimeSpan = MyDate - origin
        Return Math.Floor(diff.TotalSeconds)
    End Function


Og når jeg skal vise dato:

Dim origin As New DateTime(1970, 1, 1, 0, 0, 0, 0)
origin.AddSeconds(MyDS.Tables(0).Rows(i).Item("NewsDate"))

Skrevet ons. d. 21. april 2010 kl. 14:42:05| #16

buzzzz
buzzzz (48.826 point)
ifyoudo.net
Er det ikke lidt en stor omvej med alt det convert frem og tilbage ?

Har du ikke mulighed for at ændret formatet i databasen til DateTime? istedet for varchar/char som du bruger nu ... ?

Det sparer dig for en masse hovdepine over længere sigt ...

Skrevet man. d. 26. april 2010 kl. 03:24:26| #17


Skrevet man. d. 26. april 2010 kl. 03:28:00| #18

arne_v
arne_v (1.016.169 point)
Jeg er iøvrigt lidt skeptisk overfor om det du konverterer til og fra er Unix timestamp, hvis du befinder dig i Danmark.

Jeg har ihvertfald følgende C# kode liggende på lageret:

        private static long k = (new DateTime(1970, 1, 1, 0, 0, 0) + TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now)).Ticks;
        public static int N2U(DateTime dt)
        {
            return (int)((dt.Ticks - k) / 10000000);
        }

Det er ligegyldigt at du bruger TimeSpan.TotalSeconds og jeg bruger Ticks og almindelige operationer. Forskellen er tidszone korrektionen.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Stored procedure og triggers

Oprettet den 22. maj 2012 kl. 10.11
htm giver 60 point for svar | Giv et svar »

SELECT by NEWID

Oprettet den 14. maj 2012 kl. 10.21
zentral giver 200 point for svar | Giv et svar »

Hvor finder jeg logfiler?

Oprettet den 14. maj 2012 kl. 10.07
hundevennen giver 100 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger