Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 13:36 Der er 25 kommentarer og
1 løsning

Dato format

Hvilke dato-formater findes til SQL?

Jeg har date(yyyymmdd), kan man lave den om til date(dd-mm-yyy)??


//Bjarke
Avatar billede bennytordrup Nybegynder
22. oktober 2002 - 13:38 #1
Hvis jeg var dig, ville jeg holde mig til yyyymmdd i SQL i forbindelse med SQL Server. ISO-formatet genkendes altid af SQL Server.

Andre formater er kun anvendelige til visning og kan styres med Convert (se Books Online)
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 13:54 #2
jo, men hele min side er bygget op på dato-formatet (dd-mm-yyyy). Hvad kan jeg så gøre?
Avatar billede bennytordrup Nybegynder
22. oktober 2002 - 13:57 #3
ASP?

Hvis ja, kan du bruge format.
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 14:00 #4
jo, det er ASP
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 14:00 #5
jeg bruger VbShortDate
Avatar billede bennytordrup Nybegynder
22. oktober 2002 - 14:01 #6
Når du skal overføre datoer fra VBScript til SQL Server, formatterer du dem som 'yyyymmdd'

Når du får datoer fra SQL Server til VBScript, kan du formattere dem, som du lyster.
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 14:01 #7
dvs. at i min Tabel kan jeg have en kolonne med formatet: date(dd-mm-yyyy) , hvor bindestregerne er med?
Avatar billede bennytordrup Nybegynder
22. oktober 2002 - 14:03 #8
Nej, datoen bliver altid gemt på en og samme måde uanset den måde, du vil have vist datoerne i VBScript.

Grunden til, at jeg anbefaler brugen af yyyymmdd er, at SQL Server altid vil genkende dette format uanset serverens indstillinger.
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 14:09 #9
Ok hvis jeg laver min Tabel med kolonnen dato med formatet: date(yyyymmdd)

Kan jeg så køre denne SQL:
strSQL = "INSERT INTO TABEL dato VALUES ("& vbShortDate &") WHERE id = 3"
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 14:10 #10
sådan:

strSQL = "INSERT INTO TABEL (dato) VALUES ("& vbShortDate &") WHERE id = 3"
Avatar billede bennytordrup Nybegynder
22. oktober 2002 - 14:11 #11
Du kan IKKE angive et format på datokolonne.

create table MinTabel
(
  DatoFelt datetime
)

insert into MinTabel (DatoFelt) values ('20021230')

Din sql bliver

strSQL = "insert into tabel (Dato) values ('" & format(DatoVariabel, "yyyymmdd") & "')
Avatar billede bennytordrup Nybegynder
22. oktober 2002 - 14:12 #12
Du kan i øvrigt ikke bruge where på en insert med values.
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 14:27 #13
aha... så hvis jeg skal oprette en kolonne, skal den hedde datetime og ikke date(yyyymmdd)?
Avatar billede bennytordrup Nybegynder
22. oktober 2002 - 14:30 #14
Ifølge Books Online er der ikke nogen datatype på Microsoft SQL Server 2000, der hedder date. Det er enten datetime eller smalldatetime
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 14:36 #15
ok, så er det afklaret... godt du lige var tilstede, eller havde jeg jo lavet en masse fejl i min database.. Tak!.. laver du ikke lige et svar?
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 14:40 #16
forresten, kan jeg så lave det på denne måde?

<%
strSQL = "CREATE TABLE members (
  id auto_increment,
  ip varchar(20),
  navn varchar(100),
  brugernavn varchar(30),
  password varchar(100),
  hjemmeside varchar(255),
  email varchar(255),
  beskrivelse blob,
  foedselsdato datetime,
  status varchar(8),
  dato varchar(255),
  nyhedsbrev varchar(3),
  by varchar(255),
  oprettet datetime,
  adminstat varchar(1),
  musicchart_mail varchar(30))"
 
Conn.Execute(strSQL)
%>
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 14:42 #17
...ups du har jo fået point :o)
Avatar billede bennytordrup Nybegynder
22. oktober 2002 - 14:44 #18
Hvad database bruger du? Det der ligner ikke en create table til MS SQL Server.
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 14:46 #19
det er til MS SQL... skal lige sige at der er første gang jeg laver en Tabel til MS SQL, har før brugt ACCESS, derfor alle disse spm.
Avatar billede bennytordrup Nybegynder
22. oktober 2002 - 14:51 #20
Følgende går igennem på SQL Server:

strsql = "CREATE TABLE members (
  [id] int identity(1,1),
  ip varchar(20),
  navn varchar(100),
  brugernavn varchar(30),
  password varchar(100),
  hjemmeside varchar(255),
  email varchar(255),
  beskrivelse text,
  foedselsdato datetime,
  status varchar(8),
  dato varchar(255),
  nyhedsbrev varchar(3),
  [by] varchar(255),
  oprettet datetime,
  adminstat varchar(1),
  musicchart_mail varchar(30)
)"

id og by er reserveret ord, derfor []

Husk primærnøgle.

Beskrivelse antager jeg er tekstbaseret - derfor typen text.
Hvorfor er dato varchar(255)? Det ville IMHO være mere logisk med datetime (kommer dog an på formålet).

Hvis du har felter, der altid er en bestemt længde, kan de angives som char(x) i stedet for varchar(x)
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 14:54 #21
ok... så er det på plads, men hvordan angiver jeg primærnøgle?
Avatar billede bennytordrup Nybegynder
22. oktober 2002 - 14:57 #22
create table EnTabel
(
  [id] int identity(1,1)
  primary key ([id])
)

er en mulighed

create table EnTabel
(
  [id] int identity(1,1),
  constraint EnTabel_PrimaryKey primary key clustered ([id])
)

er en anden.

Index-navne skal være unikke for databasen - du kan ikke have samme indexnavn på to tabeller. Derfor navngiver jeg TabelNavn_IndexNavn.
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 14:59 #23
havd betyder "int identity(1,1)"?
Avatar billede bennytordrup Nybegynder
22. oktober 2002 - 15:01 #24
int er datatypen
identity(1,1) er SQL Serverens måde at angive autonummerering. Startværdi 1 (første parameter), interval 1 (anden parameter)
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 15:04 #25
ok, tak endnu en gang for hjælpen... tror vist jeg har brugt mine 15 point, hvis der er flere spm. (og det er der), så opretter jeg et nyt her på Eksperten, men tak for hjælpen!...
Avatar billede bennytordrup Nybegynder
22. oktober 2002 - 15:05 #26
Så lidt...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester