2008-09-11 そもそも now() と sysdate() ではなにが違うのか? 11.5. 日付時刻関数 http://dev.mysql.com/doc/refman/5.1/ja/date-and-time-functions.html によると SYSDATE() は、それが実行された時間を戻します。これは NOW() の動作によって異なり、ステートメントが実行を開始する時間を示す定数時間を戻します。( ストアド ルーチンまたはトリガ内で、NOW() はルーチンまたはトリガ文が実行を開始する時間を戻します。) そのほか、 SET TIMESTAMP 文は NOW() によって戻された値に影響を及ぼしますが、SYSDATE() によって戻された値には影響しません。つまり、バイナリログのタイムスタンプ設定は、SYSDATE() の呼び出しには効果をもたらさないということになりま
CentOSLinux 上にインストールしたMySQL で検証。MySQL を使っていて、絵文字を含むテキストを INSERT・UPDATE しようとしたら、以下のようなエラーが出た。 Incorrect string value: '\xF0\xA6\x9A\xB0\xE7\x94...' for column 'my_column' at row 1 調べてみると、どうもMySQL の utf8 エンコーディングはサロゲートペア文字に対応していないようで、絵文字などを扱うには、サロゲートペア文字に対応したエンコーディング utf8mb4 に変えないといけないみたい。 参考:MySQL Incorrect string value: の解決策 | テクニカルノート 設定手順は以下のページどおり。 参考:MySQLの文字コードをutf8mb4に変更 - Qiita まずはDB の

### テーブルを作る。mysql>create table demo(id serial primary key, n integer not null); Query OK, 0 rows affected (0.02 sec) ### とりあえず3件データを挿入。mysql> insert into demo(n) values(1); Query OK, 1 row affected (0.00 sec)mysql> insert into demo(n) values(2); Query OK, 1 row affected (0.00 sec)mysql> insert into demo(n) values(300); Query OK, 1 row affected (0.00 sec) ### 3桁 0埋めmysql> select lpad(n, 3, '0

照合順序とは?MySQLは文字コードとソート順を持っていて、ソート順の部分がCollationとよばれている。(文字コードの部分はCharacter Set) 比較するときには文字コードだけでなくてCollationが一致するかどうかを比較する(順序が合わないと比較できない)。 ので、JOINしようとするとエラーになる。DB単位、テーブル単位、カラム単位で設定可能。 照合順序の意味 例えば cp932_japanese_ci のようなCollationの場合。 文字コード: cp932 utf8とかcp932とかのcharacter setの事。 言語名:japanesejapaneseやthaiやgeneral、unicodeなどが入ります。 generalやunicodeはマルチリンガルの事(utf8にjapaneseはない)。 比較法: ci _ci、_cs、_bin のいず

MySQLのソートで少々ハマりました。同じ間違いをしない為に記録しておきます。 やりたかった事 以下のようなデータがあったとしましょう。 +----+--------+------+------------------+ | id | name | age | code | +----+--------+------+------------------+ | 1 | Taro | 25 | bx8m9xfhx7med7ep | | 2 | Jiro | 25 | hitnskx5kcx8cswf | | 3 | Saburo | 25 | | | 4 | Siro | | dddtwr6ses7ih2ai | | 5 |Goro | | | | 6 | Roro | 26 | | +----+--------+------+------------------+ 期待していたソート条件

みなさん、こんにちは。 産業システム部の青木です。MySQLで日付型をフォーマットするにはDATE_FORMAT関数を使います。 -- %Y:年(4桁) %m:月(0埋め) %d:日(0埋め) SELECT DATE_FORMAT('20100101', '%Y%m%d') -- 2010/01/01 -- %y:年(2桁) %c:月(0埋めなし) %e:日(0埋めなし) SELECT DATE_FORMAT('20100101', '%y/%c/%e') -- 10/1/1 -- %H:時間(0埋めの24時間) %i:分 %S:秒 SELECT DATE_FORMAT('2010-01-01 23:01:01', '%H:%i:%S') -- 23:01:01 SELECT DATE_FORMAT('2010-01-01 01:01:01', '%H:%i:%S') -- 01:01:
MySQLを使って良くやらかすミスの一つとして、文字コードの設定ミスがあります。MySQLの場合、デフォルトのまま利用すると、テーブルやdbが意図していない文字コード(例えばlatin1)になってしまうことがあります。 この状態でselectなどで日本語を取り出そうとすると文字化けしてしまい、”??????”のような文字列に置き換わってしまいます。 使っているMySQLのデフォルトの文字コードを確認するには、SQL文を show variables like 'character%'; とします。するとmysql> show variables like 'character%'; +--------------------------+----------------------------+ | Variable_name | Value | +------------------

概要 タイトルまんまです。SQLServerに日本語データをInsertすると文字化けして「??????」と言った風になります。 解決したのでメモ。 目次 概要 目次 環境 生SQLでInsert 文字化けした 文字化け解決 参考サイト様 雑感 環境Windows 10 Pro Ver 1709MicrosoftSQL Server Express Edition (64-bit) (SQL Server Data Tools 15.1.61804.210) A5:SQL Mk2 Version 2.12.3 (64bit) 生SQLでInsert 文字化けした 普段、LINQ to EntitiesでデータのCRUDをやってる感じなんですが 生のSQL文でInsertしたくなったのでやってみたら文字化けしました。 件の文字化けSQLと実際のデータは下記の通り。 INSERT IN

今から約10年ほど前に、SQL ServerのNプレフィックスについて旧MSDNフォーラムに投稿しましたが、今はアクセスできなくなっていますので、以下に載せておきます。当時の原文のままです。なお、当時の私のハンドル名はMIYAでした。 ーーーーーーーーーーーーーーーーーーーーー MIYA 参加日: 2003-5-6 投稿数: 1641 Re:SqlServerでの日本語定数の使用 投稿日時: 2004-11-14 午後 6:07 こんにちは。MIYAです。 (以下の文について、私も100%の自信があるわけではありません。いろいろな記事、および経験から総合的に私は以下のように理解しています。誤りがあればご指摘ください。(^^;) 日本で普通にSQLserverをインストールした場合、SQLserverにおける既定のコードページはjapanese(コードページ932、以下CP932)です。こ
MySQL Workbenchの便利なショートカット について、初心者向けに説明いたします。 この記事は、オンライン講座「はじめてのSQL・データ分析入門 – データベースのデータをビジネスパーソンが現場で活用するためのSQL初心者向コース」のサポート記事です。 動画で学習 1件のSQLを実行macOS : command + enterWindows : ctrl + enter カーソル直前の1件について、SQLが実行されます。 すべてのSQLを実行macOS : command + shift + enterWindows : ctrl + shift + enter エディタに記述したSQLがすべて実行されます。 意図しないSQLが実行されないように注意しましょう。 選択したSQLを実行 実行したいSQLを選択した上で、macOS : command + shift +

MySQLにてSQLで一括置換をしUpdateをかけようと思ったら、以下のエラーが出ました。Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences ->SQL Queries and reconnect. メモとしてこのエラーの原因と対処方法を記載したいと思います。 目次 前提条件 原因 対応方法 参考文献 前提条件MySQL 5.5.XXWindows XP 原因 原因はMySQLの接続するクライアントの設定項目「SQL_SAFE_UPDATES」が1になっている為です。MySQLのリファ
いつだっておもしろい事を考えているムカイです。 とても簡単に扱えて便利なmysql。 しかしそんな楽しいmysqlにも予約語という罠(?)が潜んでいます 先日、mysqlで軽くDBを作ってデータを入れようとした時、まったくinsertができない事態に陥りました。ERROR 1064 (42000): You have anerror in yourSQL syntax; check the manual that corresponds to yourMySQL server version for the right syntax to use near 'unique, sentence, url, deleted_at,created_at) VALUES ('9f075c89e1ce5c08cea7',' atline 1 なんでなんでと調べた結果、答えは「予約語」でし
MySQL Connector/.NET、長いのでMySql.Data と呼びます。 バグについてMySql.Data の接続文字列で使用できるオプションとして、「TreatTinyAsBoolean」または「Treat Tiny As Boolean」というものがあります。これはデフォルトで有効になっていて、このオプションが有効のときは TINYINT(1) のカラムを Boolean 型として扱います。 で、常に Boolean として扱ってくれるかというとそうではないという問題があります。 TINYINT(1) 型のカラムに null が入っていると、それ以降のレコードは Boolean ではなく SByte になります。これによってありがた迷惑な機能から、ただの迷惑な機能に昇格しましたね。おめでとう。 再現してみましょう。適当なMySQL サーバーを用意してえいっと。ところで
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く