Birinin kodunu aldınız ve bu bir where cümlesinin bir parçası, çift iki nokta üst üste işaretinin ne anlama geldiğini bilen var mı?
b.date_completed > a.dc::date + INTERVAL '1 DAY 7:20:00'
Birinin kodunu aldınız ve bu bir where cümlesinin bir parçası, çift iki nokta üst üste işaretinin ne anlama geldiğini bilen var mı?
b.date_completed > a.dc::date + INTERVAL '1 DAY 7:20:00'
Yanıtlar:
RDBMS'ye göre değişir, ancak doğru tahmin edersem, bu PostgreSQL'dir, bu durumda bir tarih türüne ::
dönüşür .a.dc
date
Diğer tatlarda ...
MS SQL Server 2000'de:
Bir tablo döndüren yerleşik kullanıcı tanımlı işlevler için işlev adı, onu yerleşik olmayan kullanıcı tanımlı işlevlerden ayırmak için önde çift iki nokta üst üste (: :) ile belirtilmelidir. Ayrıca, veritabanı veya sahip nitelikleri olmadan tek parçalı bir ad olarak da belirtilmelidir. Örneğin: SELECT * FROM :: fn_helpcollations () b .. Skaler bir değer döndüren yerleşik kullanıcı tanımlı işlevler için, işlev adı tek parçalı bir ad olarak belirtilmelidir (veritabanı veya sahibi belirtmeyin). Başta çift iki nokta (: :) belirtmeyin.
MS SQL Server 2005'te:
Bir tablo döndüren UDF'ler için artık çift iki nokta üst üste gerekli değildir.
Ancak...
SQL Server 2005'te şemalar, sertifikalar, uç noktalar ve diğer birkaç güvenliğe ilişkin izinler verilirken çift iki nokta üst üste kullanılması gerekir.
Hem de...
Kullanıcı Tanımlı Türler kullanılırken, türün statik yöntemleri çift kolon sözdizimi kullanılarak çağrılmalıdır.
Kaynaklar: BOL ve Kalen Delaney'in Blogu
Bu durumda, bir tarih türüne göre atılır. :: CAST (tip AS ifadesi) olarak da temsil edilebilen bir tür atamadır.
INTERVAL
destek özelliğine sahip bazılarını da biliyorum . Bu, her ikisini de birleştiren gördüğüm ilk kod parçası. Sadece merak ettim. Yanıt için teşekkürler.
Bu bir CAST
işlemdir (bir tarih türüne atılır).
Misal:
SELECT now()::timestamp(0);
Eşittir:
SELECT
CAST (now() AS timestamp(0));
Onlar döküm hem sonuç now()
için timestamp
aşağıdaki biçimde:YYYY-MM-DD HH:MM:SS
select 1.2::integer
sonuç olarak 1
.
Muhtemelen a.dc
tipe dönüşen bir kadro date
.
IBM Informix Dynamic Server (IDS) bu şekilde çalışacaktır - ancak sondaki INTERVAL gösterimi IDS için geçerli değildir, bu nedenle muhtemelen bu aslında başka bir DBMS'dir (muhtemelen PostgreSQL ).