2016-04-25 17 views
0

BIDS/Visual Studio 2005のSSRSクエリの日付形式とパラメータの日付形式は異なりますか?

こんにちは、私はSOの質問を通して表情を持っていたし、答えを見つけることができません。私はどこかにそこにあるはずだと確信しています。

これは単純な問題のようですが、いくつかのバリエーションを試しましたが、解決策が見つかりませんでした。

シンプルなデータセット: "のDateRangeは、" 私にDD/MM/YYYYの時間を与えるために:MN:ss形式など

FromDate     ToDate 
2016-04-24 00:00:00.000 2016-04-25 23:59:59.997 

select (CAST(FLOOR(CAST(dateadd(d,-1,getdate()) AS FLOAT)) AS DATETIME)) AS 'FromDate', 
DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd, -1, getdate()), 0)) as 'ToDate' 

私は、デフォルト値としてレポートにパラメータとしてfromDateからのToDateを使用しています。ただし、のパラメータフィールドには、"mm/dd/yyyy hh:mn:ss"の形式で表示されます。

私のコントロールパネルの設定は英国英語です。これはVisual Studioの「プレビュー」で機能しますが、日付が認識されないため、デプロイ時に失敗します。助言がありますか??

+0

私の理解では、パラメータパネルの日付形式は、そのひどいアメリカの形式で固定されており、その周りには道はありません。 –

答えて

1

各レポートには、独自のローカライズ設定があります。レポートの[プロパティ]パネルに、ローカライゼーションセクションのLanguageプロパティが表示されます。問題を解決するにはen-GBに設定してください。ただし、ユーザーの地域設定を使用するには、一般的に=User!Languageに設定します。

編集

それはのは、軍事日付フォーマット(大きさの降順ですべての要素 - 年、月、日、時間、など)に変換させ、動作していないので、文字列として、アプリケーションを聞かせてそれを日付に戻してください。このフォーマットは、地域の問題を避けるために、周りの日付を渡すの中で最も強力な方法です:

select CONVERT(VARCHAR(23), (CAST(FLOOR(CAST(dateadd(d,-1,getdate()) AS FLOAT)) AS DATETIME)), 121) AS 'FromDate', 
CONVERT(VARCHAR(23), DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd, -1, getdate()), 0)), 121) as 'ToDate' 
+0

ありがとう@ChisLatta。私はすでに英語を英語に設定しようとしましたが、これは違いはありませんでした。私は '= User!Language'のあなたの提案も試みましたが、そこには運がありません! – MiguelH

0

私が利用可能な時間に仕事を得ることができる唯一の解決策は、文字列としてSSRSパラメータを設定し、日付を変換することでした

select distinct left(convert(varchar, (CAST(FLOOR(CAST(dateadd(d,-1,mydate) AS FLOAT)) AS DATETIME)),120),30) as FromDate, 
left(convert(varchar, DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd, -1, mydate), 0)),120),30) as ToDate 
from mydb 
order by fromdate desc 

このパラメータは、クエリの日付としてCASTになります。本当に気になることのビット!