{"Entry":{"collection":"func","key":"substr","name":"substr","aliases":[],"metadata":{"changed_in":[],"changes":[{"descriptions_changed":true,"doc_overhaul":false,"from":"7.2","group_changed":null,"signatures":{"added":[],"removed":[]},"status":"changed","to":"7.3"},{"descriptions_changed":true,"doc_overhaul":false,"from":"7.3","group_changed":null,"signatures":{"added":[],"removed":[]},"status":"changed","to":"7.4"},{"descriptions_changed":false,"doc_overhaul":true,"from":"12","group_changed":null,"signatures":{"added":[],"removed":[]},"status":"changed","to":"13"}],"content_hash":"87d1e990928d8e9f21142ee227c7a8545b90ade0fad01ee62f56bf7a209a874f","first_version":"7.1","group":"string","group_label":"String Functions And Operators","groups":["string","binarystring"],"imported_at":"2026-09-27T17:57:28.431977+08:00","last_version":"20","name":"substr","name_key":"substr","position":3047,"present_in":["7.1","7.2","7.3","7.4","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"signature":"substr ( string text, start integer [, count integer ] ) → text","signature_count":2,"slug":"substr","source_rev":"b7bd9cda","summary":"Extracts the substring of string starting at the start'th character, and extending for count characters if that is specified.","summary_zh":""}},"Definition":{"Collection":"func","Key":"substr","SourceDatabase":"center","Version":"18","SourceTable":"func","SourceKey":"substr","SourceRevision":"b7bd9cda","Facts":{"description":"Extracts the substring of string starting at the start'th character, and extending for count characters if that is specified. (Same as substring(string from start for count).)","description_html":"Extracts the substring of \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e starting at the \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e'th character, and extending for \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e characters if that is specified. (Same as \u003ccode class=\"literal\"\u003esubstring(\u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e from \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e for \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e.)","description_zh":"","description_zh_html":"","doc":{"anchor":"FUNCTIONS-STRING-OTHER","file":"functions-string.html","slug":"18"},"group":"string","group_label":"String Functions And Operators","lang":"en","layout":"table-new","pages":["functions-string.html","functions-binarystring.html"],"prose_only":false,"signatures":[{"description":"Extracts the substring of string starting at the start'th character, and extending for count characters if that is specified. (Same as substring(string from start for count).)","description_html":"Extracts the substring of \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e starting at the \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e'th character, and extending for \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e characters if that is specified. (Same as \u003ccode class=\"literal\"\u003esubstring(\u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e from \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e for \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e.)","description_zh":"","description_zh_html":"","examples":[{"expr":"substr('alphabet', 3)","result":"phabet"},{"expr":"substr('alphabet', 3, 2)","result":"ph"}],"html":"\u003ccode class=\"function\"\u003esubstr\u003c/code\u003e ( \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003einteger\u003c/code\u003e [\u003cspan class=\"optional\"\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003einteger\u003c/code\u003e\u003c/span\u003e ] ) → \u003ccode class=\"returnvalue\"\u003etext\u003c/code\u003e","returns":"text","text":"substr ( string text, start integer [, count integer ] ) → text","zh_from":""},{"description":"Extracts the substring of bytes starting at the start'th byte, and extending for count bytes if that is specified. (Same as substring(bytes from start for count).)","description_html":"Extracts the substring of \u003cem class=\"parameter\"\u003e\u003ccode\u003ebytes\u003c/code\u003e\u003c/em\u003e starting at the \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e'th byte, and extending for \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e bytes if that is specified. (Same as \u003ccode class=\"literal\"\u003esubstring(\u003cem class=\"parameter\"\u003e\u003ccode\u003ebytes\u003c/code\u003e\u003c/em\u003e from \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e for \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e.)","description_zh":"","description_zh_html":"","examples":[{"expr":"substr('\\x1234567890'::bytea, 3, 2)","result":"\\x5678"}],"html":"\u003ccode class=\"function\"\u003esubstr\u003c/code\u003e ( \u003cem class=\"parameter\"\u003e\u003ccode\u003ebytes\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003ebytea\u003c/code\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003einteger\u003c/code\u003e [\u003cspan class=\"optional\"\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003einteger\u003c/code\u003e\u003c/span\u003e ] ) → \u003ccode class=\"returnvalue\"\u003ebytea\u003c/code\u003e","returns":"bytea","text":"substr ( bytes bytea, start integer [, count integer ] ) → bytea","zh_from":""}],"zh_from":""},"ManualEvidence":{"doc":{"anchor":"FUNCTIONS-STRING-OTHER","file":"functions-string.html","slug":"18"}},"MeasuredEvidence":{}},"Text":{"Collection":"func","Key":"substr","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"substr","Summary":"提取string中从第start个字符开始的子字符串；若指定了长度，则提取count个字符。（与substring(string from start for count)相同。）","BodyHTML":"提取\u003cem\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e中从第\u003cem\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e个字符开始的子字符串；若指定了长度，则提取\u003cem\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e个字符。（与\u003ccode\u003esubstring(\u003cem\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e from \u003cem\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e for \u003cem\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e相同。）\u003cpre\u003esubstr ( string text, start integer [, count integer ] ) → text\u003c/pre\u003e提取\u003cem\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e中从第\u003cem\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e个字符开始的子字符串；若指定了长度，则提取\u003cem\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e个字符。（与\u003ccode\u003esubstring(\u003cem\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e from \u003cem\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e for \u003cem\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e相同。）\u003cpre\u003esubstr ( bytes bytea, start integer [, count integer ] ) → bytea\u003c/pre\u003e提取\u003cem\u003e\u003ccode\u003ebytes\u003c/code\u003e\u003c/em\u003e中从第\u003cem\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e个字节开始的子字符串；若指定了长度，则提取\u003cem\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e个字节。（与\u003ccode\u003esubstring(\u003cem\u003e\u003ccode\u003ebytes\u003c/code\u003e\u003c/em\u003e from \u003cem\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e for \u003cem\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e相同。）","SourceRevision":"1b5ca64c","ContentHash":"8c1997de54a1c43dc1325fd131e0c131a768fa36121b38e8caa2266287419c3f","Payload":{"description_zh":"提取string中从第start个字符开始的子字符串；若指定了长度，则提取count个字符。（与substring(string from start for count)相同。）","description_zh_html":"提取\u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e中从第\u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e个字符开始的子字符串；若指定了长度，则提取\u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e个字符。（与\u003ccode class=\"literal\"\u003esubstring(\u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e from \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e for \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e相同。）","signatures":[{"description_zh":"提取string中从第start个字符开始的子字符串；若指定了长度，则提取count个字符。（与substring(string from start for count)相同。）","description_zh_html":"提取\u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e中从第\u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e个字符开始的子字符串；若指定了长度，则提取\u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e个字符。（与\u003ccode class=\"literal\"\u003esubstring(\u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e from \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e for \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e相同。）","returns":"text","text":"substr ( string text, start integer [, count integer ] ) → text","zh_from":"doc"},{"description_zh":"提取bytes中从第start个字节开始的子字符串；若指定了长度，则提取count个字节。（与substring(bytes from start for count)相同。）","description_zh_html":"提取\u003cem class=\"parameter\"\u003e\u003ccode\u003ebytes\u003c/code\u003e\u003c/em\u003e中从第\u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e个字节开始的子字符串；若指定了长度，则提取\u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e个字节。（与\u003ccode class=\"literal\"\u003esubstring(\u003cem class=\"parameter\"\u003e\u003ccode\u003ebytes\u003c/code\u003e\u003c/em\u003e from \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e for \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e相同。）","returns":"bytea","text":"substr ( bytes bytea, start integer [, count integer ] ) → bytea","zh_from":"doc"}],"zh_from":"doc"}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","7.1","7.2","7.3","7.4","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":[{"Version":"18","Ordinal":0,"Hash":"a578ba5bc50f47f7894b97064a679e0ef129fdc85db5a83d78c0090cb2b21d47","Text":"substr ( string text, start integer [, count integer ] ) → text","Returns":"text","Payload":{"description":"Extracts the substring of string starting at the start'th character, and extending for count characters if that is specified. (Same as substring(string from start for count).)","description_html":"Extracts the substring of \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e starting at the \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e'th character, and extending for \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e characters if that is specified. (Same as \u003ccode class=\"literal\"\u003esubstring(\u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e from \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e for \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e.)","description_zh":"","description_zh_html":"","examples":[{"expr":"substr('alphabet', 3)","result":"phabet"},{"expr":"substr('alphabet', 3, 2)","result":"ph"}],"html":"\u003ccode class=\"function\"\u003esubstr\u003c/code\u003e ( \u003cem class=\"parameter\"\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003etext\u003c/code\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003einteger\u003c/code\u003e [\u003cspan class=\"optional\"\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003einteger\u003c/code\u003e\u003c/span\u003e ] ) → \u003ccode class=\"returnvalue\"\u003etext\u003c/code\u003e","returns":"text","text":"substr ( string text, start integer [, count integer ] ) → text","zh_from":""}},{"Version":"18","Ordinal":1,"Hash":"9f93802384212d5c467b8d658e859cb218632ea40cb86ea20e460add2b2c3499","Text":"substr ( bytes bytea, start integer [, count integer ] ) → bytea","Returns":"bytea","Payload":{"description":"Extracts the substring of bytes starting at the start'th byte, and extending for count bytes if that is specified. (Same as substring(bytes from start for count).)","description_html":"Extracts the substring of \u003cem class=\"parameter\"\u003e\u003ccode\u003ebytes\u003c/code\u003e\u003c/em\u003e starting at the \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e'th byte, and extending for \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e bytes if that is specified. (Same as \u003ccode class=\"literal\"\u003esubstring(\u003cem class=\"parameter\"\u003e\u003ccode\u003ebytes\u003c/code\u003e\u003c/em\u003e from \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e for \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e)\u003c/code\u003e.)","description_zh":"","description_zh_html":"","examples":[{"expr":"substr('\\x1234567890'::bytea, 3, 2)","result":"\\x5678"}],"html":"\u003ccode class=\"function\"\u003esubstr\u003c/code\u003e ( \u003cem class=\"parameter\"\u003e\u003ccode\u003ebytes\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003ebytea\u003c/code\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003estart\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003einteger\u003c/code\u003e [\u003cspan class=\"optional\"\u003e, \u003cem class=\"parameter\"\u003e\u003ccode\u003ecount\u003c/code\u003e\u003c/em\u003e \u003ccode class=\"type\"\u003einteger\u003c/code\u003e\u003c/span\u003e ] ) → \u003ccode class=\"returnvalue\"\u003ebytea\u003c/code\u003e","returns":"bytea","text":"substr ( bytes bytea, start integer [, count integer ] ) → bytea","zh_from":""}}],"Spellings":null,"SQLState":null,"Evidence":null}
