J'ai un champ de type datetime dans lequel je veux insérer
01/01/1900 17:32:33
J'ai pas de problème ave la date si je mets '01/01/1900' mais les heures
sont toujours 00:00:00, y a t'il une fonction du type getdate() mais qui
prenne que l'heure ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred BROUARD
CURRENT_TIMESTAMP fonction normative SQL !
A +
jeorme a écrit:
Bonjour,
J'ai un champ de type datetime dans lequel je veux insérer
01/01/1900 17:32:33
J'ai pas de problème ave la date si je mets '01/01/1900' mais les heures sont toujours 00:00:00, y a t'il une fonction du type getdate() mais qui prenne que l'heure ?
Merci
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
CURRENT_TIMESTAMP fonction normative SQL !
A +
jeorme a écrit:
Bonjour,
J'ai un champ de type datetime dans lequel je veux insérer
01/01/1900 17:32:33
J'ai pas de problème ave la date si je mets '01/01/1900' mais les heures
sont toujours 00:00:00, y a t'il une fonction du type getdate() mais qui
prenne que l'heure ?
Merci
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto:brouardf@club-internet.fr ******************
J'ai un champ de type datetime dans lequel je veux insérer
01/01/1900 17:32:33
J'ai pas de problème ave la date si je mets '01/01/1900' mais les heures sont toujours 00:00:00, y a t'il une fonction du type getdate() mais qui prenne que l'heure ?
Merci
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
jeorme
Merci
Mais mon problème et que veux récupérer simplement l'heure
"Fred BROUARD" a écrit dans le message news:
CURRENT_TIMESTAMP fonction normative SQL !
A +
jeorme a écrit: > Bonjour, > > J'ai un champ de type datetime dans lequel je veux insérer > > 01/01/1900 17:32:33 > > J'ai pas de problème ave la date si je mets '01/01/1900' mais les heures > sont toujours 00:00:00, y a t'il une fonction du type getdate() mais qui > prenne que l'heure ? > > Merci > >
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
Merci
Mais mon problème et que veux récupérer simplement l'heure
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message news:
40161454.50209@club-internet.fr...
CURRENT_TIMESTAMP fonction normative SQL !
A +
jeorme a écrit:
> Bonjour,
>
> J'ai un champ de type datetime dans lequel je veux insérer
>
> 01/01/1900 17:32:33
>
> J'ai pas de problème ave la date si je mets '01/01/1900' mais les heures
> sont toujours 00:00:00, y a t'il une fonction du type getdate() mais qui
> prenne que l'heure ?
>
> Merci
>
>
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto:brouardf@club-internet.fr ******************
Mais mon problème et que veux récupérer simplement l'heure
"Fred BROUARD" a écrit dans le message news:
CURRENT_TIMESTAMP fonction normative SQL !
A +
jeorme a écrit: > Bonjour, > > J'ai un champ de type datetime dans lequel je veux insérer > > 01/01/1900 17:32:33 > > J'ai pas de problème ave la date si je mets '01/01/1900' mais les heures > sont toujours 00:00:00, y a t'il une fonction du type getdate() mais qui > prenne que l'heure ? > > Merci > >
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
Fred BROUARD
Simplement n'est pas possible.
En revanche avec une même date c'est possible.
En fait les dateheure sont stockées dans SQL Server sous forme de réels. La partie entière est le nombre de jours depuis une date donnée la partie décimale est le nombre de fraction de jour.
Autrement dit pour n'avoir que l'heure avec toujours la même date, il suffit de supprimer la partie entière.
Pour cela je te propose une fonction :
/****************************************************************************/ -- remplace un datetime par une datetime avec date à zero /****************************************************************************/ CREATE FUNCTION FN_DATETIME_AS_HOUR (@DT DATETIME) RETURNS DATETIME AS BEGIN RETURN CAST(CAST(@DT AS FLOAT) - FLOOR(CAST(@DT AS FLOAT)) AS DATETIME) END GO
-- exemple SELECT dbo.FN_DATETIME_AS_HOUR(CURRENT_TIMESTAMP)
ensuite transtype en CHAR et coupe la partie qui t'intéresse.
Pour ma part j'utilise d'autres fonctions SQL :
/****************************************************************************/ -- affichage heure et minute extrait d'une date /****************************************************************************/ CREATE FUNCTION FN_DATETIME_AS_HM (@DT DATETIME) RETURNS CHAR(5) AS BEGIN IF @DT IS NULL RETURN NULL DECLARE @H INT DECLARE @M INT SET @H = DATEPART(HOUR, @DT) SET @M = DATEPART(MINUTE, @DT) DECLARE @RETVAL VARCHAR(5) IF @H < 10 SET @RETVAL = '0' + CAST(@H AS CHAR(1))+':' ELSE SET @RETVAL = CAST(@H AS CHAR(2))+':' IF @M < 10 SET @RETVAL = @RETVAL + '0' + CAST(@M AS CHAR(1)) ELSE SET @RETVAL = @RETVAL + CAST(@M AS CHAR(2)) RETURN CAST(@RETVAL AS CHAR(5)) END GO
Exemple :
SELECT dbo.FN_DATETIME_AS_HM(CURRENT_TIMESTAMP)
A +
jeorme a écrit:
Merci
Mais mon problème et que veux récupérer simplement l'heure
"Fred BROUARD" a écrit dans le message news:
CURRENT_TIMESTAMP fonction normative SQL !
A +
jeorme a écrit:
Bonjour,
J'ai un champ de type datetime dans lequel je veux insérer
01/01/1900 17:32:33
J'ai pas de problème ave la date si je mets '01/01/1900' mais les heures sont toujours 00:00:00, y a t'il une fonction du type getdate() mais qui prenne que l'heure ?
Merci
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
Simplement n'est pas possible.
En revanche avec une même date c'est possible.
En fait les dateheure sont stockées dans SQL Server sous forme de réels.
La partie entière est le nombre de jours depuis une date donnée
la partie décimale est le nombre de fraction de jour.
Autrement dit pour n'avoir que l'heure avec toujours la même date, il
suffit de supprimer la partie entière.
Pour cela je te propose une fonction :
/****************************************************************************/
-- remplace un datetime par une datetime avec date à zero
/****************************************************************************/
CREATE FUNCTION FN_DATETIME_AS_HOUR (@DT DATETIME)
RETURNS DATETIME AS
BEGIN
RETURN CAST(CAST(@DT AS FLOAT) - FLOOR(CAST(@DT AS FLOAT)) AS DATETIME)
END
GO
-- exemple
SELECT dbo.FN_DATETIME_AS_HOUR(CURRENT_TIMESTAMP)
ensuite transtype en CHAR et coupe la partie qui t'intéresse.
Pour ma part j'utilise d'autres fonctions SQL :
/****************************************************************************/
-- affichage heure et minute extrait d'une date
/****************************************************************************/
CREATE FUNCTION FN_DATETIME_AS_HM (@DT DATETIME)
RETURNS CHAR(5) AS
BEGIN
IF @DT IS NULL RETURN NULL
DECLARE @H INT
DECLARE @M INT
SET @H = DATEPART(HOUR, @DT)
SET @M = DATEPART(MINUTE, @DT)
DECLARE @RETVAL VARCHAR(5)
IF @H < 10
SET @RETVAL = '0' + CAST(@H AS CHAR(1))+':'
ELSE
SET @RETVAL = CAST(@H AS CHAR(2))+':'
IF @M < 10
SET @RETVAL = @RETVAL + '0' + CAST(@M AS CHAR(1))
ELSE
SET @RETVAL = @RETVAL + CAST(@M AS CHAR(2))
RETURN CAST(@RETVAL AS CHAR(5))
END
GO
Exemple :
SELECT dbo.FN_DATETIME_AS_HM(CURRENT_TIMESTAMP)
A +
jeorme a écrit:
Merci
Mais mon problème et que veux récupérer simplement l'heure
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message news:
40161454.50209@club-internet.fr...
CURRENT_TIMESTAMP fonction normative SQL !
A +
jeorme a écrit:
Bonjour,
J'ai un champ de type datetime dans lequel je veux insérer
01/01/1900 17:32:33
J'ai pas de problème ave la date si je mets '01/01/1900' mais les heures
sont toujours 00:00:00, y a t'il une fonction du type getdate() mais qui
prenne que l'heure ?
Merci
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto:brouardf@club-internet.fr ******************
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto:brouardf@club-internet.fr ******************
En fait les dateheure sont stockées dans SQL Server sous forme de réels. La partie entière est le nombre de jours depuis une date donnée la partie décimale est le nombre de fraction de jour.
Autrement dit pour n'avoir que l'heure avec toujours la même date, il suffit de supprimer la partie entière.
Pour cela je te propose une fonction :
/****************************************************************************/ -- remplace un datetime par une datetime avec date à zero /****************************************************************************/ CREATE FUNCTION FN_DATETIME_AS_HOUR (@DT DATETIME) RETURNS DATETIME AS BEGIN RETURN CAST(CAST(@DT AS FLOAT) - FLOOR(CAST(@DT AS FLOAT)) AS DATETIME) END GO
-- exemple SELECT dbo.FN_DATETIME_AS_HOUR(CURRENT_TIMESTAMP)
ensuite transtype en CHAR et coupe la partie qui t'intéresse.
Pour ma part j'utilise d'autres fonctions SQL :
/****************************************************************************/ -- affichage heure et minute extrait d'une date /****************************************************************************/ CREATE FUNCTION FN_DATETIME_AS_HM (@DT DATETIME) RETURNS CHAR(5) AS BEGIN IF @DT IS NULL RETURN NULL DECLARE @H INT DECLARE @M INT SET @H = DATEPART(HOUR, @DT) SET @M = DATEPART(MINUTE, @DT) DECLARE @RETVAL VARCHAR(5) IF @H < 10 SET @RETVAL = '0' + CAST(@H AS CHAR(1))+':' ELSE SET @RETVAL = CAST(@H AS CHAR(2))+':' IF @M < 10 SET @RETVAL = @RETVAL + '0' + CAST(@M AS CHAR(1)) ELSE SET @RETVAL = @RETVAL + CAST(@M AS CHAR(2)) RETURN CAST(@RETVAL AS CHAR(5)) END GO
Exemple :
SELECT dbo.FN_DATETIME_AS_HM(CURRENT_TIMESTAMP)
A +
jeorme a écrit:
Merci
Mais mon problème et que veux récupérer simplement l'heure
"Fred BROUARD" a écrit dans le message news:
CURRENT_TIMESTAMP fonction normative SQL !
A +
jeorme a écrit:
Bonjour,
J'ai un champ de type datetime dans lequel je veux insérer
01/01/1900 17:32:33
J'ai pas de problème ave la date si je mets '01/01/1900' mais les heures sont toujours 00:00:00, y a t'il une fonction du type getdate() mais qui prenne que l'heure ?
Merci
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
jeorme
Merci beaucoup, J'ai réussi avec ta commande mais sans la fonction car je suis sous SQL 7 et les fonctions n'existent pas où je ne sais pas les implémenter.
En fait je voulais insérer dans une table d'un progiciel la date '01/01/1900 11:07:15.126" par exemple avec toujours 01/01/1900, donc j'ai fait simplement
insert into matable(monchamp) select CAST(CAST(getdate() AS FLOAT) - FLOOR(CAST(getdate() AS FLOAT)) AS DATETIME)
ça a l'air de marcher très bien.
Merci à toi et vive SQLPRO
"Fred BROUARD" a écrit dans le message news:
Simplement n'est pas possible.
En revanche avec une même date c'est possible.
En fait les dateheure sont stockées dans SQL Server sous forme de réels. La partie entière est le nombre de jours depuis une date donnée la partie décimale est le nombre de fraction de jour.
CREATE FUNCTION FN_DATETIME_AS_HM (@DT DATETIME) RETURNS CHAR(5) AS BEGIN IF @DT IS NULL RETURN NULL DECLARE @H INT DECLARE @M INT SET @H = DATEPART(HOUR, @DT) SET @M = DATEPART(MINUTE, @DT) DECLARE @RETVAL VARCHAR(5) IF @H < 10 SET @RETVAL = '0' + CAST(@H AS CHAR(1))+':' ELSE SET @RETVAL = CAST(@H AS CHAR(2))+':' IF @M < 10 SET @RETVAL = @RETVAL + '0' + CAST(@M AS CHAR(1)) ELSE SET @RETVAL = @RETVAL + CAST(@M AS CHAR(2)) RETURN CAST(@RETVAL AS CHAR(5)) END GO
Exemple :
SELECT dbo.FN_DATETIME_AS_HM(CURRENT_TIMESTAMP)
A +
jeorme a écrit: > Merci > > Mais mon problème et que veux récupérer simplement l'heure > > > "Fred BROUARD" a écrit dans le message news: > > >>CURRENT_TIMESTAMP fonction normative SQL ! >> >>A + >> >>jeorme a écrit: >> >>>Bonjour, >>> >>>J'ai un champ de type datetime dans lequel je veux insérer >>> >>>01/01/1900 17:32:33 >>> >>>J'ai pas de problème ave la date si je mets '01/01/1900' mais les
heures
>>>sont toujours 00:00:00, y a t'il une fonction du type getdate() mais
qui
>>>prenne que l'heure ? >>> >>>Merci >>> >>> >> >>-- >>Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web >>Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html >>Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com >>****************** mailto: ****************** >> > > >
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
Merci beaucoup,
J'ai réussi avec ta commande mais sans la fonction car je suis sous SQL 7 et
les fonctions n'existent pas où je ne sais pas les implémenter.
En fait je voulais insérer dans une table d'un progiciel la date '01/01/1900
11:07:15.126" par exemple avec toujours 01/01/1900, donc j'ai fait
simplement
insert into matable(monchamp)
select CAST(CAST(getdate() AS FLOAT) - FLOOR(CAST(getdate() AS FLOAT)) AS
DATETIME)
ça a l'air de marcher très bien.
Merci à toi et vive SQLPRO
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message news:
40162A9E.2040604@club-internet.fr...
Simplement n'est pas possible.
En revanche avec une même date c'est possible.
En fait les dateheure sont stockées dans SQL Server sous forme de réels.
La partie entière est le nombre de jours depuis une date donnée
la partie décimale est le nombre de fraction de jour.
CREATE FUNCTION FN_DATETIME_AS_HM (@DT DATETIME)
RETURNS CHAR(5) AS
BEGIN
IF @DT IS NULL RETURN NULL
DECLARE @H INT
DECLARE @M INT
SET @H = DATEPART(HOUR, @DT)
SET @M = DATEPART(MINUTE, @DT)
DECLARE @RETVAL VARCHAR(5)
IF @H < 10
SET @RETVAL = '0' + CAST(@H AS CHAR(1))+':'
ELSE
SET @RETVAL = CAST(@H AS CHAR(2))+':'
IF @M < 10
SET @RETVAL = @RETVAL + '0' + CAST(@M AS CHAR(1))
ELSE
SET @RETVAL = @RETVAL + CAST(@M AS CHAR(2))
RETURN CAST(@RETVAL AS CHAR(5))
END
GO
Exemple :
SELECT dbo.FN_DATETIME_AS_HM(CURRENT_TIMESTAMP)
A +
jeorme a écrit:
> Merci
>
> Mais mon problème et que veux récupérer simplement l'heure
>
>
> "Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message news:
> 40161454.50209@club-internet.fr...
>
>>CURRENT_TIMESTAMP fonction normative SQL !
>>
>>A +
>>
>>jeorme a écrit:
>>
>>>Bonjour,
>>>
>>>J'ai un champ de type datetime dans lequel je veux insérer
>>>
>>>01/01/1900 17:32:33
>>>
>>>J'ai pas de problème ave la date si je mets '01/01/1900' mais les
heures
>>>sont toujours 00:00:00, y a t'il une fonction du type getdate() mais
qui
>>>prenne que l'heure ?
>>>
>>>Merci
>>>
>>>
>>
>>--
>>Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
>>Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
>>Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
>>****************** mailto:brouardf@club-internet.fr ******************
>>
>
>
>
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto:brouardf@club-internet.fr ******************
Merci beaucoup, J'ai réussi avec ta commande mais sans la fonction car je suis sous SQL 7 et les fonctions n'existent pas où je ne sais pas les implémenter.
En fait je voulais insérer dans une table d'un progiciel la date '01/01/1900 11:07:15.126" par exemple avec toujours 01/01/1900, donc j'ai fait simplement
insert into matable(monchamp) select CAST(CAST(getdate() AS FLOAT) - FLOOR(CAST(getdate() AS FLOAT)) AS DATETIME)
ça a l'air de marcher très bien.
Merci à toi et vive SQLPRO
"Fred BROUARD" a écrit dans le message news:
Simplement n'est pas possible.
En revanche avec une même date c'est possible.
En fait les dateheure sont stockées dans SQL Server sous forme de réels. La partie entière est le nombre de jours depuis une date donnée la partie décimale est le nombre de fraction de jour.
CREATE FUNCTION FN_DATETIME_AS_HM (@DT DATETIME) RETURNS CHAR(5) AS BEGIN IF @DT IS NULL RETURN NULL DECLARE @H INT DECLARE @M INT SET @H = DATEPART(HOUR, @DT) SET @M = DATEPART(MINUTE, @DT) DECLARE @RETVAL VARCHAR(5) IF @H < 10 SET @RETVAL = '0' + CAST(@H AS CHAR(1))+':' ELSE SET @RETVAL = CAST(@H AS CHAR(2))+':' IF @M < 10 SET @RETVAL = @RETVAL + '0' + CAST(@M AS CHAR(1)) ELSE SET @RETVAL = @RETVAL + CAST(@M AS CHAR(2)) RETURN CAST(@RETVAL AS CHAR(5)) END GO
Exemple :
SELECT dbo.FN_DATETIME_AS_HM(CURRENT_TIMESTAMP)
A +
jeorme a écrit: > Merci > > Mais mon problème et que veux récupérer simplement l'heure > > > "Fred BROUARD" a écrit dans le message news: > > >>CURRENT_TIMESTAMP fonction normative SQL ! >> >>A + >> >>jeorme a écrit: >> >>>Bonjour, >>> >>>J'ai un champ de type datetime dans lequel je veux insérer >>> >>>01/01/1900 17:32:33 >>> >>>J'ai pas de problème ave la date si je mets '01/01/1900' mais les
heures
>>>sont toujours 00:00:00, y a t'il une fonction du type getdate() mais
qui
>>>prenne que l'heure ? >>> >>>Merci >>> >>> >> >>-- >>Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web >>Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html >>Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com >>****************** mailto: ****************** >> > > >
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************