2016-10-15 5 views
1

私はconvert関数を初めて使用しました。私はテーブルからのdatetime値を短くしようとしています。現在、私の日時の値は、2016-10-14 16:51:41のようなものですが、mm/dd/yyのように見せています。SQL変換関数で格納されたDatetime値を短くしようとしています

これは正しいアプローチである場合、私は(それが動作しないので、あってはならない)わからないが、私はconvert機能を使用してクエリを生成し、その後mysqli_fetch_arrayでデータをフェッチしました。

はここで私が使用しているコードです:

$sql = "SELECT id, time, CONVERT(VARCHAR(11), time) as something FROM tableName"; 
$query = mysqli_query($db, $sql); 
$statusnumrows = mysqli_num_rows($query); 

// Gather data about parent pm's 
if($statusnumrows > 0){ 
    while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) { 
     $time= $row["time"]; 
    } 
} 

Timeは、日時型を持つ列の名前です。

アドバイスありがとうございます。 Convert機能で

+0

あなたのコードに基づいて、私はあなたがMySQLを使用していることを推測するので、私は、タグを変更します。 PHPタグも追加してください。 – gofr1

答えて

2

あなたは日時etcのような適切なデータ型であなたのDBに日時格納する必要があります。

PHPを使用しているのがわかりますが、このdatetimeをいくつかのインターフェイス(HTMLページ)で出力する必要がある場合は、PHP関数を使用して必要な日付形式に変換する必要があります。それは良い練習です

DBはデータを保存する必要がありますが、フォーマットはフロントエンドの問題です。 strtotime()date()

簡単な例:

$Date = "2016-10-15"; 
$newDate = date("m/d/Y", strtotime($Date)); 

あなたはPHPサイト上のドキュメントを読むことができます:strtotimedate

+0

ご協力ありがとうございます!それは完璧に働いた!再度、感謝します! – Millica

+0

私の喜び! ;) – gofr1

0

使用スタイル1mm/dd/yy形式

select CONVERT(VARCHAR(20), [time],1) 
From yourtable 

ためのあなたがmm/dd/yyyyフォーマットをしたい場合は、その後、様々なスタイルを持つ変換機能のための101スタイル

select CONVERT(VARCHAR(20), [time],101) 
From yourtable 

MSDNのリンクを使用します。CONVERT

+0

あなたの答えをありがとう!申し訳ありませんが、これは愚かな質問ですが、私はまだmysqli_fetch_arrayを使用する必要がありますか?時間の値を表示しようとしていますが、現時点では幸運はありません。 – Millica

+0

@Millica - データベース管理者のmysqli_fetch_arrayについては考えていません。 –

+0

@Millicaはい、データベースからデータをフェッチして何とか出力するには、mysqli_fetch_arrayを使用する必要があります。しかし、それを正しく使う方法はもう一つの質問です。私は[PHP.net docs](http://php.net/manual/en/mysqli-result.fetch-array.php)で検索して、より多くの情報と例を得ることをお勧めします。 '$ time = $ row [" something "];'を使用する必要があります。フェッチした後に 'echo $ time'を返すのは何ですか? – gofr1

1

を2012+があなたのために使用できる場合マット(非常に効率的ではないが、いくつかの他の可能性を提供しない)

Declare @Date DateTime = GetDate() 

Select UsingFormat  = Format(@Date,'MM/dd/yy') 
     ,UsingConvert1 = convert(varchar(10),@Date,1) 
     ,UsingConvert101 = convert(varchar(10),@Date,101) 

戻り

UsingFormat UsingConvert1 UsingConvert101 
10/15/16 10/15/16  10/15/2016 
+0

他の内部関数と比較して 'FORMAT'がなぜ非常に遅いのかわかりません –

+1

@Prdp記事を見て、いくつかのテストを自分で実行しました。私はショックを受けました。私は彼らが機能にあまりにも多くを詰め込もうとしたと思う。 https://www.mssqltips.com/sqlservertip/3018/performance-comparison-of-the-sql-server-parse-cast-convert-and-tryparse-trycast-tryconvert-functions/ –

関連する問題