日付がNULLの場合に空白またはメッセージを表示できるように、日時フィールドをvarcharに変換したいと思います。これは私がこれまでに持っているものです:
select
isnull(us.Date,0) as USDate,
isnull(au.Date,0) as AUDate
from ustable us
left join autable au
on us.column=au.column
現在、これは次のことを示しています。
USDATE
2014-10-24 10:29:07.450
1900-01-01 00:00:00.000
「1900-01-0100:00:00.000」varcharを作成して、メッセージを書き込んだり、真の空白を表示したりできるようにしたいと思います。
Case
AND CONVERT
を次のように使用できます-
SELECT
CASE WHEN us.Date IS NULL THEN '' ELSE CONVERT(VARCHAR(30), us.Date, 121) END AS USDate,
CASE WHEN au.Date IS NULL THEN '' ELSE CONVERT(VARCHAR(30), au.Date, 121) END AS AUDate
FROM ustable us
left join autable au
on us.column=au.column
あなたが達成しようとしていることについて私が見つけた最も単純なコード行は次のとおりです。
ISNULL(CONVERT(VARCHAR(30),us.Date,121),'') as USDate,
ISNULL(CONVERT(VARCHAR(30),au.Date,121),'') as AUDate,
私はこれをテストし、それが機能することを確認しました。
NVL()関数を使用できます...
NVL関数を使用して、NULLと評価される式を指定した値に変換できます。 NVL関数は、2つの引数を受け入れます。最初の引数は、評価される式の名前を取ります。 2番目の引数は、最初の引数がNULLと評価されたときに関数が返す値を指定します。最初の引数がNULLと評価されない場合、関数は最初の引数の値を返します。
例えば:
select
nvl(us.Date,'') as USDate,
nvl(au.Date,'') as AUDate
from ustable us
left join autable au
on us.column=au.column
または、デフォルトとして必要なものを入力します。
select
nvl(us.Date,'this was a NULL') as USDate,
nvl(au.Date,'this was a NULL') as AUDate
from ustable us
left join autable au
on us.column=au.column
次のように定義された列があるとします。
date_of_birth datetime null
あなたは簡単に言うことができます
select date_of_birth = coalesce( convert(varchar(32),date_of_birth) , '' )
from some_table_with_a_nullable_datetime_column
SQLでそれを行うには:
SELECT
ステートメントを変更してWHEN
...THEN
句を組み込みます。
CASE us.Date
WHEN '1900-01-01 00:00:00.000' THEN ''
WHEN NULL THEN ''
ELSE us.Date
END as USDate,
CASE au.Date
WHEN '1900-01-01 00:00:00.000' THEN ''
WHEN NULL THEN ''
ELSE au.Date
END as AUDate
フロントエンドコードがある場合は、SQLコードを変更せずにフロントエンドに機能を実装するだけで済みます。
select null USDate, NUll AUDate
from ustable us
left join autable au on us.column=au.column
試してみると、列の値がnullであることが示されます。
このようなものを試してください...
select
CONVERT(varchar(50), isnull(us.Date,0)) as USDate,
CONVERT(varchar(50), isnull(au.Date,0)) as AUDate
from ustable us
left join autable au
on us.column=au.column
日付形式に応じて、varcharのサイズを変更することをお勧めします。また、CONVERTは、文字列の形式を変更できる3番目のパラメーターを取ります。