MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 03.01.2018, 14:44   #1
Markus Chemnitz
MOF Koryphäe
MOF Koryphäe
Standard T-SQL : MSSQL 2008 - Datepart Frage

Hallo
ich habe in einer Spalte 'Geburtstag' den Geburtstag von Patienten stehen, im Format dd:mm:yyyy. Ich will mir eine Erinnerung basteln, wann die Leute in der Laufenden Woche (Gegenwart) Geburtstag haben. Ich bräuchte ein select auf Tag und Monat aus der Spalte Geburtstag.
Könnt Ihr mir dabei helfen?

__________________

MarkB

Vom Leben nichts zu erwarten, ist das Geheimnis aller echten Heiterkeit!
Markus Chemnitz ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 16:56   #2
stendate
MOF User
MOF User
Standard

Hallo,

man könnte auch mit der Kalenderwoche arbeiten...

Code:

DECLARE @tblGeburtstage TABLE (
	[Name] VARCHAR(265),
	Geburtstag DATETIME
)

INSERT INTO @tblGeburtstage ([Name],Geburtstag) VALUES ('Adam','03.01.2017');
INSERT INTO @tblGeburtstage ([Name],Geburtstag) VALUES ('Eva','14.07.2013');

SELECT [Name], DATEPART(DAY, Geburtstag) AS [Day], DATEPART(MONTH,Geburtstag) AS [Month], DATEPART(ISO_WEEK,Geburtstag) AS [Week]
	FROM @tblGeburtstage
	WHERE DATEPART(ISO_WEEK,Geburtstag) = DATEPART(ISO_WEEK,GETDATE());
stendate ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 17:49   #3
Markus Chemnitz
Threadstarter Threadstarter
MOF Koryphäe
MOF Koryphäe
Standard

Danke stendate - der Tip mit der ISO_WEEK war mir neu und ist wirklich sehr nützlich. Ich habe jetzt folgendes gemacht:

In meiner tbl_adresse gibt es eine Spalte 'geburtsdatum' als date welches händisch eingegeben wird. Des weiteren habe ich eine Spalte 'geburtstag_dieses_jahr_errechnet' eingefügt auch als date. Diese Spalte wird mit einem update befüllt:

Code:

update tbl_adresse
set geburtstag_dieses_jahr_errechnet =
convert(varchar(10),DATEPART(d, geburtstag))+'.'+convert(varchar(10), DATEPART(mm, geburtstag))+'.' +convert(varchar(10), DATEPART(Yy, GETDATE()))
das funktioniert auch einwandfrei.

Mit einem:

Code:

select id_adresse,titel, firma_name,vorname, geburtstag, geburtstag_dieses_jahr_errechnet, datepart(ISO_WEEK,geburtstag_dieses_jahr_errechnet) woche_in_diesem_jahr
from tbl_adresse
where nr_id_adresse_betriebsart = 0 and geburtstag <>'01.01.1900'
order by geburtstag_dieses_jahr_errechnet
komme ich auch prima an die Daten ran einschließlich der Kalenderwoche.

Nun hätte ich aber auch noch ganz gern das Alter der Leute in diesem Jahr. Ich habe versucht

geburtstag_dieses_jahr_errechnet - geburtstag

zu selecten - geht aber nicht wegen irgendwelchen Formaten. Beides sind wie gesagt hart definierte DATE Spalten. Hat da noch jemand einen Tip?

Danke Euch!

__________________

MarkB

Vom Leben nichts zu erwarten, ist das Geheimnis aller echten Heiterkeit!
Markus Chemnitz ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 18:11   #4
Markus Chemnitz
Threadstarter Threadstarter
MOF Koryphäe
MOF Koryphäe
Standard

Selbst hinbekommen :-) So bekomme ich auch das richtige Alter zum Geburtstag in diesem Jahr angezeigt:

Code:

select id_adresse,titel, firma_name,vorname, geburtstag, geburtstag_dieses_jahr_errechnet, datepart(ISO_WEEK,geburtstag_dieses_jahr_errechnet) woche_in_diesem_jahr,
convert(int,CONVERT(smalldatetime,geburtstag_dieses_jahr_errechnet)-CONVERT(smalldatetime,geburtstag))/365 as Lebensalter
from tbl_adresse
where nr_id_adresse_betriebsart = 0 and geburtstag <>'01.01.1900'
order by geburtstag_dieses_jahr_errechnet

__________________

MarkB

Vom Leben nichts zu erwarten, ist das Geheimnis aller echten Heiterkeit!
Markus Chemnitz ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 04.01.2018, 12:47   #5
Markus Chemnitz
Threadstarter Threadstarter
MOF Koryphäe
MOF Koryphäe
Standard

Habe jetzt eine proc als Datenquelle geschrieben, mit der ich auf die harte Spalte 'geburtstag_dieses_jahr_errechnet' verzichten kann:
Code:

create Procedure pr_read_out_geburtstagskinder
@kalenderwoche int
as

select 
id_adresse,
titel, 
firma_name,
vorname, 
geburtstag, 
convert(varchar(10),DATEPART(d, geburtstag))+'.'+convert(varchar(10), DATEPART(mm, geburtstag))+'.' +convert(varchar(10), DATEPART(Yy, GETDATE())) as geburtstag_dieses_jahr_errechnet, 
datepart(ISO_WEEK,convert(varchar(10),DATEPART(d, geburtstag))+'.'+convert(varchar(10), DATEPART(mm, geburtstag))+'.' +convert(varchar(10), DATEPART(Yy, GETDATE()))) as woche_in_diesem_jahr,
convert(int,CONVERT(smalldatetime,convert(varchar(10),DATEPART(d, geburtstag))+'.'+convert(varchar(10), DATEPART(mm, geburtstag))+'.' +convert(varchar(10), DATEPART(Yy, GETDATE())))
-CONVERT(smalldatetime,geburtstag))/365 as Lebensalter
from tbl_adresse
where nr_id_adresse_betriebsart = 0 and geburtstag <>'01.01.1900' and 
datepart(ISO_WEEK,convert(varchar(10),DATEPART(d, geburtstag))+'.'+convert(varchar(10), DATEPART(mm, geburtstag))+'.' +convert(varchar(10), DATEPART(Yy, GETDATE())))=@kalenderwoche and 
verstorben = 0
order by convert(varchar(10),DATEPART(d, geburtstag))+'.'+convert(varchar(10), DATEPART(mm, geburtstag))+'.' +convert(varchar(10), DATEPART(Yy, GETDATE()))
go
klappt wunderbar ... :-)

__________________

MarkB

Vom Leben nichts zu erwarten, ist das Geheimnis aller echten Heiterkeit!
Markus Chemnitz ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.